Update dependencies #708
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: ci | |
on: | |
push: | |
branches: | |
- master | |
- next | |
tags: | |
- v* | |
pull_request: | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4.2.2 | |
- name: Resolve caching | |
id: cache | |
if: ${{ github.ref_name != 'update-dependencies' && !startsWith(github.ref_name, 'dependabot/') }} | |
run: echo "npm_cache=npm" >> $GITHUB_STATE | |
- name: Use Node.js | |
uses: actions/setup-node@v4.1.0 | |
with: | |
node-version-file: '.nvmrc' | |
cache: ${{ env.npm_cache }} | |
- name: Install dependencies | |
run: npm ci | |
- name: Lint | |
run: npm run lint | |
test-unit: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4.2.2 | |
- name: Resolve caching | |
id: cache | |
if: ${{ github.ref_name != 'update-dependencies' && !startsWith(github.ref_name, 'dependabot/') }} | |
run: echo "npm_cache=npm" >> $GITHUB_STATE | |
- name: Use Node.js | |
uses: actions/setup-node@v4.1.0 | |
with: | |
node-version-file: '.nvmrc' | |
cache: ${{ env.npm_cache }} | |
- name: Install dependencies | |
run: npm ci | |
- name: Test | |
run: npm run test:unit | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4.2.2 | |
- name: Resolve caching | |
id: cache | |
if: ${{ github.ref_name != 'update-dependencies' && !startsWith(github.ref_name, 'dependabot/') }} | |
run: echo "npm_cache=npm" >> $GITHUB_STATE | |
- name: Use Node.js | |
uses: actions/setup-node@v4.1.0 | |
with: | |
node-version-file: '.nvmrc' | |
cache: ${{ env.npm_cache }} | |
- name: Install dependencies | |
run: npm ci | |
- name: Build | |
run: yarn run build | |
- name: Upload build files | |
uses: actions/upload-artifact@v4.5.0 | |
with: | |
name: build-artifacts | |
retention-days: 1 | |
path: dist*/ | |
test-package: | |
name: Test package on node ${{ matrix.node }} / ${{ matrix.os }} / rollup v${{ matrix.rollup }} | |
needs: | |
- build | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
node: ['22', '20', '18'] | |
os: [ubuntu-latest, windows-latest] | |
rollup: ['3', '4'] | |
exclude: | |
- os: windows-latest | |
node: 20 | |
- os: windows-latest | |
node: 18 | |
- rollup: 3 | |
node: 20 | |
- rollup: 3 | |
node: 18 | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4.2.2 | |
- name: Use Node.js | |
uses: actions/setup-node@v4.1.0 | |
with: | |
node-version: ${{ matrix.node }} | |
- name: Install vitest | |
run: npm install vitest | |
- name: Download build files | |
uses: actions/download-artifact@v4.1.8 | |
with: | |
name: build-artifacts | |
- name: Setup local npm registry | |
run: ./scripts/setup-registry.sh | |
- name: Install test package dependencies | |
run: | | |
npm install | |
npm install rollup@${{ matrix.rollup }} --force | |
npx rollup -v | |
working-directory: test/package | |
- name: Test package | |
run: npm run test:package | |
tests: | |
needs: | |
- lint | |
- test-unit | |
- test-package | |
runs-on: ubuntu-latest | |
steps: | |
- run: exit 0 | |
publish: | |
# Run only for version tags | |
if: contains(github.ref, 'refs/tags/v') | |
needs: | |
- tests | |
runs-on: ubuntu-latest | |
permissions: | |
id-token: write | |
steps: | |
- uses: actions/checkout@v4.2.2 | |
# Cache packages when the branch is not update-dependencies or dependabot/* | |
- name: Resolve caching | |
id: cache | |
if: ${{ github.ref_name != 'update-dependencies' && !startsWith(github.ref_name, 'dependabot/') }} | |
run: echo "PACKAGE=npm" >> $GITHUB_OUTPUT | |
- name: Use Node.js | |
uses: actions/setup-node@v4.1.0 | |
with: | |
node-version-file: '.nvmrc' | |
cache: ${{ steps.cache.outputs.PACKAGE }} | |
registry-url: 'https://registry.npmjs.org' | |
- name: Install dependencies | |
run: npm ci | |
- name: Download build | |
uses: actions/download-artifact@v4 | |
with: | |
name: build-artifacts | |
- run: npm run release | |
env: | |
NPM_CONFIG_PROVENANCE: true | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |