fix deploy pipeline: isolate path-filtered step chains
Split push-images and upload-scan-results into per-image steps so each chain (build → scan → upload → push) is fully self-contained. Fixes Woodpecker "depends on unknown step" error when path filters remove steps from the pipeline. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -8,6 +8,7 @@ when:
|
|||||||
branch: main
|
branch: main
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
# ── Python package ──────────────────────────────────────────
|
||||||
- name: build-package
|
- name: build-package
|
||||||
image: ghcr.io/astral-sh/uv:python3.13-bookworm-slim
|
image: ghcr.io/astral-sh/uv:python3.13-bookworm-slim
|
||||||
commands:
|
commands:
|
||||||
@@ -30,6 +31,7 @@ steps:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- build-package
|
- build-package
|
||||||
|
|
||||||
|
# ── Notebooks image ─────────────────────────────────────────
|
||||||
- name: build-notebooks
|
- name: build-notebooks
|
||||||
image: docker:cli
|
image: docker:cli
|
||||||
volumes:
|
volumes:
|
||||||
@@ -40,16 +42,6 @@ steps:
|
|||||||
when:
|
when:
|
||||||
- path: "notebooks/**"
|
- path: "notebooks/**"
|
||||||
|
|
||||||
- name: build-zotero
|
|
||||||
image: docker:cli
|
|
||||||
volumes:
|
|
||||||
- /run/user/1000/docker.sock:/var/run/docker.sock
|
|
||||||
commands:
|
|
||||||
- docker build -t localhost:3000/homelab/zotero:${CI_COMMIT_SHA:0:8} ./zotero
|
|
||||||
- docker tag localhost:3000/homelab/zotero:${CI_COMMIT_SHA:0:8} localhost:3000/homelab/zotero:latest
|
|
||||||
when:
|
|
||||||
- path: "zotero/**"
|
|
||||||
|
|
||||||
- name: scan-notebooks
|
- name: scan-notebooks
|
||||||
image: aquasec/trivy:latest
|
image: aquasec/trivy:latest
|
||||||
volumes:
|
volumes:
|
||||||
@@ -62,6 +54,35 @@ steps:
|
|||||||
when:
|
when:
|
||||||
- path: "notebooks/**"
|
- path: "notebooks/**"
|
||||||
|
|
||||||
|
- name: push-notebooks
|
||||||
|
image: docker:cli
|
||||||
|
volumes:
|
||||||
|
- /run/user/1000/docker.sock:/var/run/docker.sock
|
||||||
|
environment:
|
||||||
|
REGISTRY_USER:
|
||||||
|
from_secret: registry_user
|
||||||
|
REGISTRY_PASS:
|
||||||
|
from_secret: registry_pass
|
||||||
|
commands:
|
||||||
|
- echo "$REGISTRY_PASS" | docker login localhost:3000 -u "$REGISTRY_USER" --password-stdin
|
||||||
|
- docker push localhost:3000/homelab/notebooks:${CI_COMMIT_SHA:0:8}
|
||||||
|
- docker push localhost:3000/homelab/notebooks:latest
|
||||||
|
depends_on:
|
||||||
|
- scan-notebooks
|
||||||
|
when:
|
||||||
|
- path: "notebooks/**"
|
||||||
|
|
||||||
|
# ── Zotero image ────────────────────────────────────────────
|
||||||
|
- name: build-zotero
|
||||||
|
image: docker:cli
|
||||||
|
volumes:
|
||||||
|
- /run/user/1000/docker.sock:/var/run/docker.sock
|
||||||
|
commands:
|
||||||
|
- docker build -t localhost:3000/homelab/zotero:${CI_COMMIT_SHA:0:8} ./zotero
|
||||||
|
- docker tag localhost:3000/homelab/zotero:${CI_COMMIT_SHA:0:8} localhost:3000/homelab/zotero:latest
|
||||||
|
when:
|
||||||
|
- path: "zotero/**"
|
||||||
|
|
||||||
- name: scan-zotero
|
- name: scan-zotero
|
||||||
image: aquasec/trivy:latest
|
image: aquasec/trivy:latest
|
||||||
volumes:
|
volumes:
|
||||||
@@ -74,27 +95,7 @@ steps:
|
|||||||
when:
|
when:
|
||||||
- path: "zotero/**"
|
- path: "zotero/**"
|
||||||
|
|
||||||
- name: upload-scan-results
|
- name: push-zotero
|
||||||
image: woodpeckerci/plugin-s3
|
|
||||||
settings:
|
|
||||||
endpoint: http://rustfs:9000
|
|
||||||
bucket: gitea
|
|
||||||
access_key:
|
|
||||||
from_secret: s3_access_key
|
|
||||||
secret_key:
|
|
||||||
from_secret: s3_secret_key
|
|
||||||
source: "*.json"
|
|
||||||
target: /ci/${CI_REPO}/${CI_COMMIT_SHA:0:8}/
|
|
||||||
path_style: true
|
|
||||||
depends_on:
|
|
||||||
- scan-notebooks
|
|
||||||
- scan-zotero
|
|
||||||
when:
|
|
||||||
- path:
|
|
||||||
- "notebooks/**"
|
|
||||||
- "zotero/**"
|
|
||||||
|
|
||||||
- name: push-images
|
|
||||||
image: docker:cli
|
image: docker:cli
|
||||||
volumes:
|
volumes:
|
||||||
- /run/user/1000/docker.sock:/var/run/docker.sock
|
- /run/user/1000/docker.sock:/var/run/docker.sock
|
||||||
@@ -105,10 +106,44 @@ steps:
|
|||||||
from_secret: registry_pass
|
from_secret: registry_pass
|
||||||
commands:
|
commands:
|
||||||
- echo "$REGISTRY_PASS" | docker login localhost:3000 -u "$REGISTRY_USER" --password-stdin
|
- echo "$REGISTRY_PASS" | docker login localhost:3000 -u "$REGISTRY_USER" --password-stdin
|
||||||
- docker push localhost:3000/homelab/notebooks:${CI_COMMIT_SHA:0:8} || true
|
- docker push localhost:3000/homelab/zotero:${CI_COMMIT_SHA:0:8}
|
||||||
- docker push localhost:3000/homelab/notebooks:latest || true
|
- docker push localhost:3000/homelab/zotero:latest
|
||||||
- docker push localhost:3000/homelab/zotero:${CI_COMMIT_SHA:0:8} || true
|
depends_on:
|
||||||
- docker push localhost:3000/homelab/zotero:latest || true
|
- scan-zotero
|
||||||
|
when:
|
||||||
|
- path: "zotero/**"
|
||||||
|
|
||||||
|
# ── Upload scan results ─────────────────────────────────────
|
||||||
|
- name: upload-notebooks-scan
|
||||||
|
image: woodpeckerci/plugin-s3
|
||||||
|
settings:
|
||||||
|
endpoint: http://rustfs:9000
|
||||||
|
bucket: gitea
|
||||||
|
access_key:
|
||||||
|
from_secret: s3_access_key
|
||||||
|
secret_key:
|
||||||
|
from_secret: s3_secret_key
|
||||||
|
source: "notebooks-scan.json"
|
||||||
|
target: /ci/${CI_REPO}/${CI_COMMIT_SHA:0:8}/
|
||||||
|
path_style: true
|
||||||
depends_on:
|
depends_on:
|
||||||
- scan-notebooks
|
- scan-notebooks
|
||||||
|
when:
|
||||||
|
- path: "notebooks/**"
|
||||||
|
|
||||||
|
- name: upload-zotero-scan
|
||||||
|
image: woodpeckerci/plugin-s3
|
||||||
|
settings:
|
||||||
|
endpoint: http://rustfs:9000
|
||||||
|
bucket: gitea
|
||||||
|
access_key:
|
||||||
|
from_secret: s3_access_key
|
||||||
|
secret_key:
|
||||||
|
from_secret: s3_secret_key
|
||||||
|
source: "zotero-scan.json"
|
||||||
|
target: /ci/${CI_REPO}/${CI_COMMIT_SHA:0:8}/
|
||||||
|
path_style: true
|
||||||
|
depends_on:
|
||||||
- scan-zotero
|
- scan-zotero
|
||||||
|
when:
|
||||||
|
- path: "zotero/**"
|
||||||
|
|||||||
Reference in New Issue
Block a user