name: "Run setup tests" on: push: branches: - main - dev pull_request: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/dev' }} env: SHELL: /usr/bin/bash jobs: setup-tests: if: ${{ (github.head_ref || github.ref_name) == 'dev' }} runs-on: ubicloud-standard-16 env: STACK_EXTERNAL_DB_SYNC_MAX_DURATION_MS: "20000" STACK_EXTERNAL_DB_SYNC_DIRECT: "false" steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - name: Setup Node.js v22 uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 with: node-version: 22 - name: Setup pnpm uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 - name: Install packages run: pnpm install - run: pnpm run build:packages - run: pnpm run codegen - run: pnpm run start-deps - uses: JarvusInnovations/background-action@2428e7b970a846423095c79d43f759abf979a635 # v1.0.7 with: run: pnpm run dev & wait-on: | http://localhost:8102 tail: true wait-for: 120s log-output-if: true - name: Run tests (first attempt) id: run-tests-first-attempt continue-on-error: ${{ (github.head_ref || github.ref_name) != 'main' && (github.head_ref || github.ref_name) != 'dev' }} run: pnpm run test run --reporter=verbose # These tests are often flakey, as a temporary measure we retry them once. - name: Run tests (retry once on non-dev/main branches) if: ${{ (github.head_ref || github.ref_name) != 'main' && (github.head_ref || github.ref_name) != 'dev' && steps.run-tests-first-attempt.outcome == 'failure' }} run: pnpm run test run --reporter=verbose