name: Docs - Tests on: pull_request: paths: - 'docs/**' - '.github/actions/setup-node-pnpm-bun/action.yml' - '.github/workflows/docs-tests.yml' - 'mise.toml' - 'mise.lock' concurrency: group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.ref || github.run_id }} cancel-in-progress: ${{ github.event_name == 'pull_request' }} permissions: contents: read jobs: test: runs-on: ubuntu-latest defaults: run: working-directory: ./docs steps: - name: Checkout repository uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Setup Node.js, pnpm, Bun uses: ./.github/actions/setup-node-pnpm-bun - name: Cache bun dependencies uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: ~/.bun/install/cache key: ${{ runner.os }}-bun-${{ hashFiles('docs/bun.lock') }} restore-keys: | ${{ runner.os }}-bun- - name: Install dependencies run: bun install - name: Run static tests run: bun run test - name: Build run: bun run build - name: Start server and run integration tests run: | bun run start & SERVER_PID=$! echo "Waiting for server to start..." for i in $(seq 1 30); do if curl -s http://localhost:3000 > /dev/null 2>&1; then echo "Server is ready!" break fi if [ $i -eq 30 ]; then echo "Server failed to start within 30 seconds" kill $SERVER_PID 2>/dev/null || true exit 1 fi sleep 1 done set +e bun run test:integration TEST_EXIT=$? set -e kill $SERVER_PID 2>/dev/null || true exit $TEST_EXIT