# this workflow runs tests on pull request and push events targeting master branch # it also verify the generated code is up to date and valid name: Test on: pull_request: branches: - master push: branches: - master jobs: test-crates: needs: frontend-build runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 with: fetch-depth: 0 - name: Setup Rust, checkout and restore caches uses: ./.github/actions/setup-rust - name: Restore frontend build cache uses: actions/cache@v4 with: path: apps/frontend/build key: frontend-build-${{ runner.os }}-run-${{ github.run_id }} restore-keys: | frontend-build-${{ runner.os }}- - name: Run tests run: cargo test --all-features lint-crates: needs: frontend-build runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 with: fetch-depth: 0 - name: Setup Rust, checkout and restore caches uses: ./.github/actions/setup-rust with: components: clippy, rustfmt - name: Restore frontend build cache uses: actions/cache@v4 with: path: apps/frontend/build key: frontend-build-${{ runner.os }}-run-${{ github.run_id }} restore-keys: | frontend-build-${{ runner.os }}- - name: Run clippy run: cargo clippy --all-features -- -D warnings - name: Check code formatting run: cargo fmt --all -- --check lint-frontend: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 - uses: pnpm/action-setup@v4 with: version: 10 run_install: false - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 22 cache: 'pnpm' cache-dependency-path: pnpm-lock.yaml - name: Install frontend dependencies run: | cd apps/frontend pnpm install - name: Run frontend linter run: | cd apps/frontend pnpm lint test-frontend: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 with: fetch-depth: 0 - uses: pnpm/action-setup@v4 name: Install pnpm with: version: 10 run_install: false - name: Install Node.js uses: actions/setup-node@v4 with: node-version: 22 cache: 'pnpm' cache-dependency-path: pnpm-lock.yaml - name: Install frontend dependencies run: | cd apps/frontend pnpm install - name: Run frontend tests run: | cd apps/frontend pnpm test frontend-build: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 - uses: pnpm/action-setup@v4 with: version: 10 run_install: false - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 22 cache: 'pnpm' cache-dependency-path: pnpm-lock.yaml - name: Install frontend dependencies run: | cd apps/frontend pnpm install --frozen-lockfile - name: Build frontend run: | cd apps/frontend pnpm build - name: Cache frontend build uses: actions/cache@v4 with: path: apps/frontend/build key: frontend-build-${{ runner.os }}-run-${{ github.run_id }} restore-keys: | frontend-build-${{ runner.os }}-