123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- name: Publish JS Client
- on:
- workflow_dispatch:
- inputs:
- level:
- description: Version level
- required: true
- default: patch
- type: choice
- options:
- - patch
- - minor
- - major
- - prerelease
- - prepatch
- - preminor
- - premajor
- tag:
- description: NPM Tag (and preid for pre-releases)
- required: true
- type: string
- default: latest
- create_release:
- description: Create a GitHub release
- required: true
- type: boolean
- default: true
- jobs:
- test_js:
- name: Test JS client
- runs-on: ubuntu-latest
- steps:
- - name: Git Checkout
- uses: actions/checkout@v4
- - name: Setup Environment
- uses: ./.github/actions/setup
- with:
- cargo-cache-key: cargo-programs
- solana: true
- - name: Format JS Client
- run: pnpm clients:js:format
- - name: Lint JS Client
- run: pnpm clients:js:lint
- - name: Build Programs
- run: pnpm programs:build
- - name: Test JS Client
- run: pnpm clients:js:test
- publish_js:
- name: Publish JS client
- runs-on: ubuntu-latest
- needs: test_js
- permissions:
- contents: write
- steps:
- - name: Git Checkout
- uses: actions/checkout@v4
- with:
- token: ${{ secrets.ANZA_TEAM_PAT }}
- - name: Setup Environment
- uses: ./.github/actions/setup
- - name: Ensure NPM_TOKEN variable is set
- env:
- token: ${{ secrets.NPM_TOKEN }}
- if: ${{ env.token == '' }}
- run: |
- echo "The NPM_TOKEN secret variable is not set"
- echo "Go to \"Settings\" -> \"Secrets and variables\" -> \"Actions\" -> \"New repository secret\"."
- exit 1
- - name: NPM Authentication
- run: pnpm config set '//registry.npmjs.org/:_authToken' "${NODE_AUTH_TOKEN}"
- env:
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- - name: Set Git Author
- run: |
- git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
- git config --global user.name "github-actions[bot]"
- - name: Publish JS Client
- id: publish
- run: pnpm clients:js:publish ${{ inputs.level }} ${{ inputs.tag }}
- - name: Push Commit and Tag
- run: git push origin --follow-tags
- - name: Create GitHub release
- if: github.event.inputs.create_release == 'true'
- uses: ncipollo/release-action@v1
- with:
- tag: js@v${{ steps.publish.outputs.new_version }}
|