build: migrate to pnpm #4941
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
# Automate, customize, and execute your software development workflows right in your repository with GitHub Actions. | |
# Documentation: https://docs.github.com/en/actions | |
name: build | |
env: | |
PNPM_VERSION: 9.15.2 | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
on: | |
push: | |
branches: | |
- main | |
- develop | |
- next | |
- release/* | |
tags: | |
- '*' | |
pull_request: | |
branches: | |
- main | |
- develop | |
- next | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node-version: [20] | |
steps: | |
- uses: actions/[email protected] | |
- name: Install pnpm | |
uses: pnpm/action-setup@v4 | |
with: | |
version: ${{ env.PNPM_VERSION }} | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/[email protected] | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'pnpm' | |
- name: Load build cache | |
uses: actions/[email protected] | |
id: cache | |
with: | |
path: | | |
.turbo | |
./demos/node_modules/.vite | |
/home/runner/.cache/Cypress | |
key: ${{ runner.os }}-build-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-build- | |
- name: Install dependencies | |
id: install-dependencies | |
run: pnpm install | |
- name: Lint code | |
run: npm run lint | |
- name: Try to build the packages | |
id: build-packages | |
run: pnpm run build | |
- name: Soft release | |
id: soft-release | |
run: npx pkg-pr-new publish './packages/*' --compact | |
test: | |
runs-on: ubuntu-latest | |
needs: build | |
strategy: | |
matrix: | |
node-version: [20] | |
test-spec: | |
- { name: "Integration", spec: "./tests/cypress/integration/**/*.spec.{js,ts}" } | |
- { name: "Demos/Commands", spec: "./demos/src/Commands/**/*.spec.{js,ts}" } | |
- { name: "Demos/Examples", spec: "./demos/src/Examples/**/*.spec.{js,ts}" } | |
- { name: "Demos/Experiments", spec: "./demos/src/Experiments/**/*.spec.{js,ts}" } | |
- { name: "Demos/Extensions", spec: "./demos/src/Extensions/**/*.spec.{js,ts}" } | |
- { name: "Demos/GuideContent", spec: "./demos/src/GuideContent/**/*.spec.{js,ts}" } | |
- { name: "Demos/GuideGettingStarted", spec: "./demos/src/GuideGettingStarted/**/*.spec.{js,ts}" } | |
#- { name: "Demos/GuideNodeViews", "./demos/src/GuideNodeViews/**/*.spec.{js,ts}" } | |
- { name: "Demos/Marks", spec: "./demos/src/Marks/**/*.spec.{js,ts}" } | |
- { name: "Demos/Nodes", spec: "./demos/src/Nodes/**/*.spec.{js,ts}" } | |
#- { name: "Demos/Overview", spec: "./demos/src/Overview/**/*.spec.{js,ts}" } | |
steps: | |
- uses: actions/[email protected] | |
- name: Load build cache | |
uses: actions/[email protected] | |
id: cache | |
with: | |
path: | | |
.turbo | |
./demos/node_modules/.vite | |
/home/runner/.cache/Cypress | |
key: ${{ runner.os }}-build-${{ matrix.test-spec.name }}-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-build-${{ matrix.test-spec.name }}- | |
- name: Install pnpm | |
uses: pnpm/action-setup@v4 | |
with: | |
version: ${{ env.PNPM_VERSION }} | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/[email protected] | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'pnpm' | |
- name: Install dependencies | |
id: install-dependencies | |
run: pnpm install | |
- name: Try to build the packages | |
id: build-packages | |
run: pnpm run build | |
- name: Test ${{ matrix.test-spec.name }} | |
id: cypress | |
uses: cypress-io/[email protected] | |
with: | |
cache-key: ${{ runner.os }}-node-${{ matrix.node-version }}-${{ hashFiles('**/package-lock.json') }} | |
start: pnpm run serve | |
wait-on: 'http://localhost:3000' | |
spec: ${{ matrix.test-spec.spec }} | |
project: ./tests | |
browser: chrome | |
quiet: true | |
- name: Export screenshots (on failure only) | |
uses: actions/[email protected] | |
if: failure() | |
with: | |
name: cypress-screenshots | |
path: tests/cypress/screenshots | |
retention-days: 7 | |
- name: Export screen recordings (on failure only) | |
uses: actions/[email protected] | |
if: failure() | |
with: | |
name: cypress-videos | |
path: tests/cypress/videos | |
retention-days: 7 | |
release: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node-version: [20] | |
needs: test | |
steps: | |
- uses: actions/[email protected] | |
- name: Install pnpm | |
uses: pnpm/action-setup@v4 | |
with: | |
version: ${{ env.PNPM_VERSION }} | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/[email protected] | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'pnpm' | |
- name: Load build cache | |
uses: actions/[email protected] | |
id: cache | |
with: | |
path: | | |
.turbo | |
./demos/node_modules/.vite | |
/home/runner/.cache/Cypress | |
key: ${{ runner.os }}-build-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-build-${{ github.sha }} | |
- name: Install dependencies | |
id: install-dependencies | |
run: pnpm install | |
- name: Try to build the packages | |
id: build-packages | |
run: pnpm run build | |
- name: Soft release | |
id: soft-release | |
run: npx pkg-pr-new publish './packages/*' --compact |