publish-package #45
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-package | |
on: | |
workflow_dispatch: | |
inputs: | |
increment: | |
type: choice | |
description: Version increment (defaults to minor) | |
default: minor | |
options: | |
- major | |
- minor | |
- patch | |
- premajor | |
- preminor | |
- prepatch | |
prerelease: | |
type: choice | |
description: Make the release a beta or alpha prerelease | |
default: 'no' | |
options: | |
- 'no' | |
- beta | |
- alpha | |
jobs: | |
publish-package: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
packages: write | |
steps: | |
- uses: actions/checkout@v4 | |
# Setup .npmrc file to publish to GitHub Packages | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '20.x' | |
registry-url: 'https://registry.npmjs.org' | |
# Defaults to the user or organization that owns the workflow file | |
# scope: '@pufferfinance' | |
- name: Install pnpm | |
uses: pnpm/action-setup@v3 | |
with: | |
version: latest | |
run_install: true | |
- name: Setup git | |
run: | | |
git config user.name "${GITHUB_ACTOR}" | |
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com" | |
- name: Build package | |
run: pnpm build | |
# This makes the API reference docs part of the release commit. | |
- name: Build docs | |
run: pnpm docs:build | |
- name: Upload docs for deployment | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: docs/build | |
- name: Publish package | |
if: "${{ inputs.prerelease == 'no' || inputs.prerelease == '' }}" | |
run: pnpm release --increment ${{ inputs.increment }} | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Prepublish package | |
if: "${{ inputs.prerelease != 'no' && inputs.prerelease != '' }}" | |
run: pnpm release ${{ inputs.increment }} --preRelease ${{ inputs.prerelease }} | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
deploy-docs: | |
runs-on: ubuntu-latest | |
needs: publish-package | |
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages | |
permissions: | |
pages: write | |
id-token: write | |
# Deploy to the github-pages environment | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
steps: | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v4 |