release-with-npm-and-pr-only #1
This file contains hidden or 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: 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 }} | |