Patch Release #28
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Patch Release | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| branch: | |
| description: 'Branch to run the action on' | |
| required: true | |
| default: 'master' | |
| jobs: | |
| patch-release: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| environment: prod | |
| steps: | |
| - name: Extract branch name | |
| shell: bash | |
| id: extract_branch | |
| run: | | |
| echo "BRANCH=${{ github.event.inputs.branch }}" >> $GITHUB_ENV | |
| echo "Branch: " $BRANCH | |
| - name: checkout patch branch | |
| uses: actions/checkout@v6 | |
| with: | |
| ref: ${{ env.BRANCH }} | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: .nvmrc | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm install | |
| - name: Install Playwright Browsers | |
| run: npx playwright install --with-deps | |
| - name: Run tests | |
| run : | | |
| npm test | |
| - name: Get new version string | |
| id: get_new_patch_version | |
| run: | | |
| chmod +rx ./.github/workflows/scripts/new-patch-version.sh | |
| . ./.github/workflows/scripts/new-patch-version.sh | |
| shell: bash | |
| - name: See patch branch | |
| run: echo branch ${{ env.BRANCH }} | |
| shell: bash | |
| - name: See new patch version | |
| run: echo "# version:" ${{ env.VERSION }} | |
| shell: bash | |
| - name: checkout master branch | |
| uses: actions/checkout@v6 | |
| with: | |
| ref: master | |
| fetch-depth: 0 | |
| - name: Set Git Config | |
| run : | | |
| # Set git configs | |
| git config --global user.name "${GITHUB_ACTOR}" | |
| git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com" | |
| - name: Update Version on master | |
| id: update_backport_version_master | |
| run: | | |
| jq --arg ver "${{ env.VERSION }}" '.versions += [$ver]' ./documentation/versions.json >> /tmp/temp.json | |
| mv /tmp/temp.json ./documentation/versions.json | |
| git add . && git commit -m "Docs: Add ${{ env.VERSION }} to versions.json" | |
| git push | |
| - name: checkout unstable branch | |
| uses: actions/checkout@v6 | |
| with: | |
| ref: unstable | |
| fetch-depth: 0 | |
| - name: Update Version on unstable | |
| id: update_backport_version_unstable | |
| run: | | |
| jq --arg ver "${{ env.VERSION }}" '.versions += [$ver]' ./documentation/versions.json >> /tmp/temp.json | |
| mv /tmp/temp.json ./documentation/versions.json | |
| git add . && git commit -m "Docs: Add ${{ env.VERSION }} to versions.json" | |
| git push | |
| git checkout ${{ env.BRANCH }} | |
| - name: Set Git Config | |
| run : | | |
| # Set git configs | |
| git config --global user.name "${GITHUB_ACTOR}" | |
| git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com" | |
| - name: Make Release | |
| id: release | |
| run: | | |
| chmod +rx .github/workflows/scripts/pre_release_test.sh | |
| . .github/workflows/scripts/pre_release_test.sh ${{ env.BRANCH }} | |
| - name: Archive action failure results | |
| uses: actions/upload-artifact@v4 | |
| if: ${{ failure() && steps.release.conclusion == 'failure' }} | |
| with: | |
| name: npm-release--failure-report | |
| path: /home/runner/.npm/_logs/ | |
| - name: Publish Package to GitHub Releases | |
| run: | | |
| curl -L \ | |
| -X POST \ | |
| -H "Accept: application/vnd.github+json" \ | |
| -H "Authorization: Bearer ${{ secrets.MAIN_GH_TOKEN }}" \ | |
| -H "X-GitHub-Api-Version: 2022-11-28" \ | |
| https://api.github.com/repos/${{ github.repository }}/releases \ | |
| -d '{"tag_name":"v${{ env.VERSION }}","target_commitish":"master","name":"v${{ env.VERSION }}","body":"Release version v${{ env.VERSION }}","draft":false,"prerelease":false,"generate_release_notes":false}' | |
| - name: Deploy to Github Pages 🚀 | |
| if: ${{ env.BRANCH == 'master' }} | |
| uses: JamesIves/github-pages-deploy-action@v4 | |
| with: | |
| folder: documentation | |
| npm_publish: | |
| needs: patch-release | |
| permissions: | |
| contents: read | |
| id-token: write | |
| uses: ./.github/workflows/npm-publish.yml |