Publish #19
This file contains 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: 18.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: 18.x | |
build-path: dist | |
artifact-name: package | |
release: | |
name: Release | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
# 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: ${{ secrets.GITHUB_TOKEN }} | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} |