diff --git a/.github/workflows/enforce-changelog.yml b/.github/workflows/enforce-changelog.yml new file mode 100644 index 0000000..c773866 --- /dev/null +++ b/.github/workflows/enforce-changelog.yml @@ -0,0 +1,14 @@ +name: "Pull Request Changelog Enforcement Workflow" +on: + pull_request: + # The specific activity types are listed here to include "labeled" and "unlabeled" since the enforcer allows for skipping enforcement of the changelog being edited via the "skipLabels" property + types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled] + +jobs: + # Enforces the update of a changelog file on every pull request + changelog: + runs-on: ubuntu-latest + steps: + # The checkout step is required since this action uses local git commands to enforce the changelog + - uses: actions/checkout@master + - uses: dangoslen/changelog-enforcer@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..a76e9e5 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,38 @@ +on: + push: + tags: + - 'v*' # Push events to matching v*, i.e. v1.0.0 + +name: Create Release + +jobs: + build: + name: Create Release + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@master + - name: Set RELEASE_VERSION environment variable + run: echo "RELEASE_VERSION=${GITHUB_REF:10}" >> $GITHUB_ENV + - uses: actions/setup-node@master + with: + node-version: '22.x' + - run: npm ci + - run: npm run build + - name: Publish to NPM + run: | + npm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN} + npm publish --ignore-scripts --access public + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + - name: Create artifact + run: | + mkdir ${{ env.RELEASE_VERSION }}-dist && cp dist/farmOS-timeline* ${{ env.RELEASE_VERSION }}-dist && zip -r ${{ env.RELEASE_VERSION }}-dist.zip ${{ env.RELEASE_VERSION }}-dist + - name: Create Release + uses: softprops/action-gh-release@6034af24fba4e5a8e975aaa6056554efe4c794d0 #0.1.13 + with: + body: | + See [CHANGELOG.md](https://github.com/farmOS/farmOS-timeline/blob/${{ env.RELEASE_VERSION }}/CHANGELOG.md) for release notes. + files: ${{ env.RELEASE_VERSION }}-dist.zip + draft: false + prerelease: false diff --git a/.github/workflows/run-build.yml b/.github/workflows/run-build.yml new file mode 100644 index 0000000..8745a30 --- /dev/null +++ b/.github/workflows/run-build.yml @@ -0,0 +1,24 @@ +name: Run build +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + build: + name: Run build + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@master + - uses: actions/setup-node@master + with: + node-version: '22.x' + - run: npm ci + - run: npm run build + - uses: actions/upload-artifact@v4 + with: + path: dist