ci: increase timeouts + pnpm store cache to reduce QNAP runner flakes
CI / Architecture Guardrails (pull_request) Successful in 3m48s
CI / Assistant Split Regression (pull_request) Successful in 5m11s
CI / Typecheck (pull_request) Successful in 5m42s
CI / Lint (pull_request) Successful in 5m46s
CI / Build (pull_request) Successful in 7m54s
CI / E2E Tests (pull_request) Successful in 5m35s
CI / Fresh-Linux Docker Deploy (pull_request) Successful in 5m53s
CI / Unit Tests (pull_request) Successful in 5m43s
CI / Release Images (pull_request) Has been skipped
CI / Architecture Guardrails (pull_request) Successful in 3m48s
CI / Assistant Split Regression (pull_request) Successful in 5m11s
CI / Typecheck (pull_request) Successful in 5m42s
CI / Lint (pull_request) Successful in 5m46s
CI / Build (pull_request) Successful in 7m54s
CI / E2E Tests (pull_request) Successful in 5m35s
CI / Fresh-Linux Docker Deploy (pull_request) Successful in 5m53s
CI / Unit Tests (pull_request) Successful in 5m43s
CI / Release Images (pull_request) Has been skipped
Three distinct flake types addressed: - pnpm store cache: faster installs reduce total job time - E2E webServer timeout: 3m → 5m (QNAP cold-start is slow) - Docker deploy health poll: 3m → 5m headroom for image build - Pre-pull node:20-bookworm-slim: warms Docker layer cache Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -43,6 +43,14 @@ jobs:
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
|
||||
- name: Cache pnpm store
|
||||
uses: actions/cache@v4
|
||||
continue-on-error: true
|
||||
with:
|
||||
path: ~/.local/share/pnpm/store
|
||||
key: pnpm-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
restore-keys: pnpm-${{ runner.os }}-
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
|
||||
@@ -77,6 +85,14 @@ jobs:
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
|
||||
- name: Cache pnpm store
|
||||
uses: actions/cache@v4
|
||||
continue-on-error: true
|
||||
with:
|
||||
path: ~/.local/share/pnpm/store
|
||||
key: pnpm-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
restore-keys: pnpm-${{ runner.os }}-
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
|
||||
@@ -107,6 +123,14 @@ jobs:
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
|
||||
- name: Cache pnpm store
|
||||
uses: actions/cache@v4
|
||||
continue-on-error: true
|
||||
with:
|
||||
path: ~/.local/share/pnpm/store
|
||||
key: pnpm-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
restore-keys: pnpm-${{ runner.os }}-
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
|
||||
@@ -132,6 +156,14 @@ jobs:
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
|
||||
- name: Cache pnpm store
|
||||
uses: actions/cache@v4
|
||||
continue-on-error: true
|
||||
with:
|
||||
path: ~/.local/share/pnpm/store
|
||||
key: pnpm-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
restore-keys: pnpm-${{ runner.os }}-
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
|
||||
@@ -196,6 +228,14 @@ jobs:
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
|
||||
- name: Cache pnpm store
|
||||
uses: actions/cache@v4
|
||||
continue-on-error: true
|
||||
with:
|
||||
path: ~/.local/share/pnpm/store
|
||||
key: pnpm-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
restore-keys: pnpm-${{ runner.os }}-
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
|
||||
@@ -251,6 +291,14 @@ jobs:
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
|
||||
- name: Cache pnpm store
|
||||
uses: actions/cache@v4
|
||||
continue-on-error: true
|
||||
with:
|
||||
path: ~/.local/share/pnpm/store
|
||||
key: pnpm-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
restore-keys: pnpm-${{ runner.os }}-
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
|
||||
@@ -347,6 +395,14 @@ jobs:
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
|
||||
- name: Cache pnpm store
|
||||
uses: actions/cache@v4
|
||||
continue-on-error: true
|
||||
with:
|
||||
path: ~/.local/share/pnpm/store
|
||||
key: pnpm-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
restore-keys: pnpm-${{ runner.os }}-
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
|
||||
@@ -493,6 +549,10 @@ jobs:
|
||||
sleep 3
|
||||
done
|
||||
|
||||
- name: Pre-pull Docker base image
|
||||
run: docker pull node:20-bookworm-slim
|
||||
continue-on-error: true
|
||||
|
||||
- name: Build and start app (full profile)
|
||||
run: docker compose -f docker-compose.yml -f docker-compose.ci.yml --profile full up -d --build app
|
||||
|
||||
@@ -509,7 +569,7 @@ jobs:
|
||||
# the act_runner job can reach). No DNS, no guessing.
|
||||
run: |
|
||||
set -e
|
||||
for i in $(seq 1 36); do
|
||||
for i in $(seq 1 60); do
|
||||
CID=$(docker compose -f docker-compose.yml -f docker-compose.ci.yml ps -q app || true)
|
||||
if [ -n "$CID" ]; then
|
||||
APP_IP=$(docker inspect -f '{{range $k,$v := .NetworkSettings.Networks}}{{if eq $k "gitea_gitea"}}{{$v.IPAddress}}{{end}}{{end}}' "$CID")
|
||||
|
||||
@@ -24,6 +24,6 @@ export default defineConfig({
|
||||
command: "node ./e2e/test-server.mjs",
|
||||
url: e2eBaseUrl,
|
||||
reuseExistingServer: false,
|
||||
timeout: 180000,
|
||||
timeout: 300000,
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user