feat(client): consume linting autofix package #21634
Workflow file for this run
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: CI | |
| on: [ push, pull_request ] | |
| defaults: | |
| run: | |
| shell: bash | |
| jobs: | |
| build: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ ubuntu-latest, macos-latest, windows-2022 ] | |
| runs-on: ${{ matrix.os }} | |
| permissions: | |
| contents: read | |
| id-token: write # Vault OIDC/JWT auth | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Use Node.js | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: 24 | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Project setup | |
| uses: bpmn-io/actions/setup@latest | |
| - name: Build with code coverage | |
| if: ${{ runner.OS == 'Linux' }} | |
| run: COVERAGE=1 npm run all -- --x64 --no-compress | |
| - name: Build for Windows | |
| if: ${{ runner.OS == 'Windows' }} | |
| run: npm run all -- --x64 --no-compress | |
| - name: Build for macOS | |
| if: ${{ runner.OS == 'macOS' }} | |
| run: npm run all -- --arm64 --no-compress | |
| - name: Import Secrets | |
| if: ${{ runner.OS == 'Linux' }} | |
| id: secrets | |
| uses: hashicorp/vault-action@v4.0.0 | |
| with: | |
| url: ${{ secrets.VAULT_ADDR }} | |
| method: jwt | |
| role: ${{ secrets.VAULT_JWT_ROLE }} | |
| path: ${{ secrets.VAULT_JWT_PATH }} | |
| jwtGithubAudience: ${{ secrets.VAULT_JWT_AUDIENCE }} | |
| exportEnv: false | |
| secrets: | | |
| secret/data/products/desktop-modeler/ci/CODECOV_TOKEN CODECOV_TOKEN; | |
| - name: Upload coverage | |
| if: ${{ runner.OS == 'Linux' }} | |
| uses: codecov/codecov-action@v7 | |
| with: | |
| fail_ci_if_error: true | |
| env: | |
| CODECOV_TOKEN: ${{ steps.secrets.outputs.CODECOV_TOKEN }} | |
| e2e-tests: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ ubuntu-latest, macos-latest, windows-2022 ] | |
| runs-on: ${{ matrix.os }} | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Use Node.js | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: 24 | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Project setup | |
| uses: bpmn-io/actions/setup@latest | |
| - name: Build preload | |
| run: npm run preload:build | |
| - name: Build client | |
| run: npm run client:build | |
| # Electron is headed, so Linux needs a virtual display (xvfb); macOS and | |
| # Windows runners have one. | |
| - name: Run integration tests (${{ runner.os }}) | |
| run: | | |
| if [ "$RUNNER_OS" = "Linux" ]; then | |
| xvfb-run --auto-servernum npm run test:e2e | |
| else | |
| npm run test:e2e | |
| fi | |
| - name: Upload integration test artifacts | |
| if: ${{ failure() }} | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: e2e-results-${{ matrix.os }} | |
| path: test/e2e/test-results/ | |
| if-no-files-found: ignore |