Add tests and automated publishing the package to NPM #5
Workflow file for this run
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: Build, Test, Release | |
on: | |
push: | |
branches: main | |
pull_request: | |
branches: "*" | |
jobs: | |
build_lint_test: | |
name: Build, Lint, and Test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v3 | |
with: | |
# check out full history | |
fetch-depth: 0 | |
- name: Install Pnpm | |
uses: pnpm/[email protected] | |
with: | |
version: 8.8.0 | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.x | |
cache: pnpm | |
- name: Install dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Validate | |
run: | | |
pnpm run lint | |
pnpm run check-format | |
pnpm exec changeset status --since=origin/main | |
- name: Test | |
run: pnpm run test | |
- name: Build | |
run: pnpm run build | |
release: | |
name: Release | |
needs: build_lint_test | |
permissions: | |
contents: write # To push release tags | |
pull-requests: write # To create release pull requests | |
runs-on: ubuntu-latest | |
if: ${{ github.ref == 'refs/heads/main' }} | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v3 | |
- name: Install Pnpm | |
uses: pnpm/[email protected] | |
with: | |
version: 8.8.0 | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.x | |
cache: pnpm | |
- name: Install dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Build | |
run: pnpm run build | |
- name: Create Release Pull Request or Publish to NPM | |
id: changesets | |
uses: changesets/action@v1 | |
with: | |
publish: pnpm run release | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} |