build: Use action from relative-ci/.github #3500
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: ci | |
on: | |
push: | |
branches: | |
- master | |
tags: | |
- v* | |
pull_request: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4.2.2 | |
- name: Setup | |
uses: "relative-ci/.github/actions/setup@main" | |
- name: Build | |
run: npm run build | |
- name: Upload webpack stats file | |
uses: relative-ci/agent-upload-artifact-action@v2.0.0 | |
with: | |
webpackStatsFile: ./packages/html-templates/artifacts/webpack-stats.json | |
- name: Upload build files | |
uses: actions/upload-artifact@v4.4.3 | |
with: | |
name: build-artifacts | |
retention-days: 1 | |
# add glob on the first directory to force paths relative to current directory | |
path: | | |
packages*/*/lib/** | |
packages*/*/lib-esm/** | |
packages*/*/dist/** | |
packages*/*/types/** | |
packages/cli/__fixtures__/* | |
# Publish new version to local registry | |
- name: Run local npm registry | |
run: ./scripts/local-registry.sh & | |
- name: Publish bundle-stats packages locally | |
run: ./scripts/local-registry-publish.sh | |
- name: Upload local registry files | |
uses: actions/upload-artifact@v4.4.3 | |
with: | |
name: local-registry | |
retention-days: 1 | |
include-hidden-files: true | |
path: | | |
.verdaccio-storage*/**/* | |
lint: | |
needs: | |
- build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4.2.2 | |
- name: Setup | |
uses: "relative-ci/.github/actions/setup@main" | |
- name: Download build files | |
uses: actions/download-artifact@v4.1.8 | |
with: | |
name: build-artifacts | |
- name: Lint | |
run: npm run lint | |
test-unit: | |
needs: | |
- build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4.2.2 | |
- name: Setup | |
uses: "relative-ci/.github/actions/setup@main" | |
- name: Download build files | |
uses: actions/download-artifact@v4.1.8 | |
with: | |
name: build-artifacts | |
- name: Test | |
run: npm test | |
test-e2e: | |
needs: | |
- build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4.2.2 | |
- name: Setup | |
uses: "relative-ci/.github/actions/setup@main" | |
- name: Download build files | |
uses: actions/download-artifact@v4.1.8 | |
with: | |
name: build-artifacts | |
- name: Install E2E tests dependencies | |
working-directory: packages/cli | |
run: npx playwright install --with-deps | |
- name: Run E2E tests | |
working-directory: packages/cli | |
run: npm run test:e2e | |
test-package-cli: | |
needs: | |
- build | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
node: [20, 18, 16, 14] | |
runs-on: ${{ matrix.os }} | |
name: CLI ${{ matrix.os }} nodejs ${{ matrix.node }} | |
steps: | |
- uses: actions/checkout@v4.2.2 | |
- name: Use Node.js | |
uses: actions/setup-node@v4.1.0 | |
with: | |
node-version: ${{ matrix.node }} | |
cache: ${{ steps.cache.outputs.PACKAGE }} | |
- name: Download build files | |
uses: actions/download-artifact@v4.1.8 | |
with: | |
name: build-artifacts | |
- name: Download local registry files | |
uses: actions/download-artifact@v4.1.8 | |
with: | |
name: local-registry | |
- name: Install dependencies | |
run: npm install -g verdaccio@v5 | |
- name: Run local npm registry | |
run: ./scripts/local-registry.sh & | |
- name: Test package | |
run: npm run test:package | |
working-directory: packages/cli | |
test-package-webpack-plugin: | |
needs: | |
- build | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, ubuntu-latest] | |
node: [20, 18, 16, 14] | |
webpack: ['webpack4', 'webpack5'] | |
exclude: | |
- webpack: 'webpack4' | |
node: 18 | |
- webpack: 'webpack4' | |
node: 20 | |
- os: windows-latest | |
node: 20 | |
- os: windows-latest | |
node: 18 | |
- os: windows-latest | |
node: 16 | |
runs-on: ${{ matrix.os }} | |
name: ${{ matrix.webpack }} plugin ${{ matrix.os }} nodejs ${{ matrix.node }} | |
steps: | |
- uses: actions/checkout@v4.2.2 | |
- name: Use Node.js | |
uses: actions/setup-node@v4.1.0 | |
with: | |
node-version: ${{ matrix.node }} | |
- name: Download build files | |
uses: actions/download-artifact@v4.1.8 | |
with: | |
name: build-artifacts | |
- name: Download local registry files | |
uses: actions/download-artifact@v4.1.8 | |
with: | |
name: local-registry | |
- name: Install dependencies | |
run: npm install -g verdaccio@v5 | |
- name: Run local npm registry | |
run: ./scripts/local-registry.sh & | |
- name: Test package | |
run: npm run test:package -- -t ${{ matrix.webpack }} | |
working-directory: packages/webpack-plugin | |
test-package-rollup-plugin: | |
needs: | |
- build | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
node: [16, 18] | |
rollup: [3, 4] | |
exclude: | |
- rollup: 3 | |
node: 18 | |
- rollup: 4 | |
node: 16 | |
runs-on: ${{ matrix.os }} | |
name: rollup ${{ matrix.rollup}} plugin nodejs ${{ matrix.node }} | |
steps: | |
- uses: actions/checkout@v4.2.2 | |
- name: Use Node.js | |
uses: actions/setup-node@v4.1.0 | |
with: | |
node-version: ${{ matrix.node }} | |
- name: Download build files | |
uses: actions/download-artifact@v4.1.8 | |
with: | |
name: build-artifacts | |
- name: Download local registry files | |
uses: actions/download-artifact@v4.1.8 | |
with: | |
name: local-registry | |
- name: Install verdaccio | |
run: npm install -g verdaccio@v5 | |
- name: Run local npm registry | |
run: ./scripts/local-registry.sh & | |
- name: Install test dependencies | |
run: | | |
npm install --force | |
npm install --no-save --force rollup@${{ matrix.rollup }} | |
working-directory: packages/rollup-plugin/test/package | |
- name: Test package | |
run: npm run test:package | |
working-directory: packages/rollup-plugin | |
tests: | |
needs: | |
- lint | |
- test-unit | |
- test-e2e | |
- test-package-cli | |
- test-package-webpack-plugin | |
- test-package-rollup-plugin | |
runs-on: ubuntu-latest | |
steps: | |
- run: echo "Tests done." | |
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 | |
- name: Setup | |
uses: "relative-ci/.github/actions/setup@main" | |
- name: Download build | |
uses: actions/download-artifact@v4.1.8 | |
with: | |
name: build-artifacts | |
- run: npm run release | |
env: | |
NPM_CONFIG_PROVENANCE: true | |
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} | |
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} |