From b97c4a0508562cc9d91338087b1ff94e408a73d7 Mon Sep 17 00:00:00 2001 From: Disco DeDisco Date: Tue, 12 May 2026 18:01:34 -0400 Subject: [PATCH] =?UTF-8?q?woodpecker=20main.yaml:=20workspace-shared=20pi?= =?UTF-8?q?p=20cache=20via=20`PIP=5FCACHE=5FDIR:=20.pip-cache`=20on=20all?= =?UTF-8?q?=203=20test=20steps=20(test-UTs-n-ITs=20/=20test-two-browser-FT?= =?UTF-8?q?s=20/=20test-FTs)=20=E2=80=94=20each=20step=20currently=20re-do?= =?UTF-8?q?wnloads=20the=20entire=20requirements.txt=20wheel=20set=20indep?= =?UTF-8?q?endently;=20Woodpecker=20mounts=20the=20workspace=20across=20st?= =?UTF-8?q?eps=20in=20one=20run,=20so=20the=20wheels=20populated=20by=20st?= =?UTF-8?q?ep=201=20are=20reused=20by=20steps=202-3,=20saving=20~1-2=20min?= =?UTF-8?q?=20of=20pip-install=20wall-clock=20per=20run=20(only=20download?= =?UTF-8?q?=20time=20=E2=80=94=20install=20still=20happens=20fresh=20per?= =?UTF-8?q?=20container);=20pyswiss.yaml=20untouched=20(separate=20pipelin?= =?UTF-8?q?e,=20separate=20workspace,=20separate=20requirements);=20cache?= =?UTF-8?q?=20is=20per-run=20only=20=E2=80=94=20cross-run=20persistence=20?= =?UTF-8?q?would=20need=20a=20Woodpecker=20volume=20plugin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Code architected by Disco DeDisco Git commit message Co-Authored-By: Claude Opus 4.7 (1M context) --- .woodpecker/main.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.woodpecker/main.yaml b/.woodpecker/main.yaml index 11f6cbc..cefe6e2 100644 --- a/.woodpecker/main.yaml +++ b/.woodpecker/main.yaml @@ -16,6 +16,12 @@ steps: DATABASE_URL: postgresql://postgres:postgres@postgres/python_tdd_test CELERY_BROKER_URL: redis://redis:6379/0 REDIS_URL: redis://redis:6379/1 + # Workspace-shared pip cache — Woodpecker mounts the workspace across + # all steps in a run, so the wheels populated here are reused by + # test-two-browser-FTs + test-FTs (saves ~30-60s × 2 = ~1-2 min per + # run). Cache lives only inside one run; cross-run caching would + # need a volume plugin. + PIP_CACHE_DIR: .pip-cache commands: - pip install -r requirements.txt - cd ./src @@ -37,6 +43,7 @@ steps: from_secret: stripe_secret_key STRIPE_PUBLISHABLE_KEY: from_secret: stripe_publishable_key + PIP_CACHE_DIR: .pip-cache commands: - pip install -r requirements.txt - cd ./src @@ -61,6 +68,7 @@ steps: from_secret: stripe_secret_key STRIPE_PUBLISHABLE_KEY: from_secret: stripe_publishable_key + PIP_CACHE_DIR: .pip-cache commands: - pip install -r requirements.txt - cd ./src