1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- 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:
- solana: true
- - name: Format JS Client
- run: pnpm clients:js:format
- - name: Lint JS Client
- run: pnpm clients:js:lint
- - 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
- - 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 }}
|