Merge main into release #414
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: Publish | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - release | |
| workflow_dispatch: | |
| concurrency: release | |
| permissions: | |
| contents: write | |
| issues: read | |
| jobs: | |
| ci: | |
| name: Continuous Integration | |
| uses: makerxstudio/shared-config/.github/workflows/node-ci.yml@main | |
| with: | |
| node-version: 20.x | |
| run-commit-lint: true | |
| pre-test-script: | | |
| pipx install algokit | |
| algokit localnet start | |
| npx --yes wait-on tcp:4001 -t 30000 | |
| audit-script: | | |
| npm run audit | |
| check_docs: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Clone repository | |
| uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 1 | |
| - name: Check docs are up to date | |
| shell: bash | |
| run: | | |
| npm ci --ignore-scripts | |
| npm run generate:code-docs | |
| # Add untracked files as empty so they come up in diff | |
| git add -N . | |
| # Print changed files and error out if there are changes after generating docs | |
| git diff --exit-code --name-only | |
| build: | |
| name: Build | |
| uses: makerxstudio/shared-config/.github/workflows/node-build-zip.yml@main | |
| needs: | |
| - ci | |
| - check_docs | |
| with: | |
| node-version: 20.x | |
| build-path: dist | |
| artifact-name: package | |
| release: | |
| name: Release | |
| needs: build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Generate bot token | |
| uses: actions/create-github-app-token@v1 | |
| id: app_token | |
| with: | |
| app-id: ${{ secrets.BOT_ID }} | |
| private-key: ${{ secrets.BOT_SK }} | |
| - uses: actions/checkout@v4 | |
| with: | |
| # Fetch entire repository history so we can determine version number from it | |
| fetch-depth: 0 | |
| token: ${{ steps.app_token.outputs.token }} | |
| - name: Set Git user as GitHub actions | |
| run: git config --global user.email "179917785+engineering-ci[bot]@users.noreply.github.com" && git config --global user.name "engineering-ci[bot]" | |
| # semantic-release needs node 20 | |
| - name: Use Node.js 20.x | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: 20.x | |
| - name: Download built package | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: package | |
| path: artifacts | |
| - name: Unzip package | |
| shell: bash | |
| run: | | |
| mkdir -p dist | |
| unzip -q "artifacts/package.zip" -d dist | |
| - name: Install dependencies to get semantic release components and plugins | |
| run: npm ci --ignore-scripts | |
| - name: 'Semantic release' | |
| run: npx semantic-release | |
| env: | |
| GITHUB_TOKEN: ${{ steps.app_token.outputs.token }} | |
| NPM_TOKEN: ${{ secrets.NPM_TOKEN }} |