Skip to content

release-with-npm-and-pr-only #1

release-with-npm-and-pr-only

release-with-npm-and-pr-only #1

name: release-with-npm-and-pr-only
on: workflow_dispatch
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
- name: Build
run: yarn build
- name: Upload Build Artifact
uses: actions/upload-artifact@v4
with:
name: build-artifact
path: build
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
- name: Lint
run: yarn lint
release:
name: Release
runs-on: ubuntu-latest
needs: [build, lint]
steps:
# (1) Create a GitHub App token
# Note: the Github App must be installed on the repository and included in the bypass list of the ruleset.
- uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.PRIVATE_KEY }}
- name: Checkout
uses: actions/checkout@v4
with:
# (2) Use the GitHub App token to init the repository
token: ${{ steps.app-token.outputs.token }}
# (3) Fetch all history so that release-it can determine the version
fetch-depth: 0
- name: Setup
uses: ./.github/actions/setup
# (4) Configure Git user
- name: Configure Git User
run: |
git config --global user.name "${GITHUB_ACTOR}"
git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com"
- name: Download Build Artifact
uses: actions/download-artifact@v4
with:
name: build-artifact
- name: Release
run: yarn release
env:
# (5) Make GITHUB_TOKEN available to release-it but use the GitHub App token
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
# (6) Make NPM_ACCESS_TOKEN available to release-it and npm publish command
NPM_ACCESS_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }}