name: CI on: workflow_dispatch: push: branches: - main pull_request: # Automatically cancel older in-progress jobs on the same branch concurrency: group: ${{ github.workflow }}-${{ github.event_name == 'pull_request_target' && github.head_ref || github.ref }} cancel-in-progress: true defaults: run: shell: bash env: RUSTFLAGS: "-Dwarnings" jobs: lint: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Rust uses: moonrepo/setup-rust@v1 with: components: clippy - name: Setup pnpm uses: pnpm/action-setup@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: latest cache: 'pnpm' - name: Install dependencies run: pnpm install - name: Build JS dependencies run: cargo xtask build-js - name: Run Clippy run: cargo clippy --all-targets --all-features build: name: Build runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Rust uses: moonrepo/setup-rust@v1 - name: Setup pnpm uses: pnpm/action-setup@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: latest cache: 'pnpm' - name: Install dependencies run: pnpm install - name: Build JS dependencies run: cargo xtask build-js - name: Build run: cargo build e2e: name: Test (E2E) runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Rust uses: moonrepo/setup-rust@v1 - name: Setup pnpm uses: pnpm/action-setup@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: latest cache: 'pnpm' - name: Install dependencies run: pnpm install - name: Build JS dependencies run: cargo xtask build-js - name: Build run: cargo build - name: Test working-directory: ./e2e run: pnpm playwright install chromium && pnpm test test: name: Test runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Rust uses: moonrepo/setup-rust@v1 - name: Setup pnpm uses: pnpm/action-setup@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: latest cache: 'pnpm' - name: Install dependencies run: pnpm install - name: Build JS dependencies run: cargo xtask build-js - name: Test run: cargo test