From 9964b4e3adc2bb4e180c7f479b95f87865ab22b4 Mon Sep 17 00:00:00 2001 From: JustMe Date: Fri, 2 Oct 2026 11:33:34 +0800 Subject: [PATCH] ci: allow manual semver image publishing --- .woodpecker/release-backend.yml | 9 +++++++-- docs/deployment.md | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.woodpecker/release-backend.yml b/.woodpecker/release-backend.yml index f0d56c4..f5208a9 100644 --- a/.woodpecker/release-backend.yml +++ b/.woodpecker/release-backend.yml @@ -1,6 +1,7 @@ when: - event: tag ref: refs/tags/v* + - event: manual labels: ci: domain-linux-native @@ -18,7 +19,9 @@ steps: release-checks: image: bash commands: - - node scripts/check-api-contract.mjs "$CI_COMMIT_TAG" + - release_tag="${CI_COMMIT_TAG:-${RELEASE_TAG:-}}" + - test -n "$release_tag" + - node scripts/check-api-contract.mjs "$release_tag" - dotnet test server/WebDrop.slnx --configuration Release --verbosity minimal publish-backend: @@ -31,8 +34,10 @@ steps: ZOT_REGISTRY: zot.oeo.one commands: - set -euo pipefail + - release_tag="${CI_COMMIT_TAG:-${RELEASE_TAG:-}}" + - test -n "$release_tag" - printf '%s' "$ZOT_PASSWORD" | buildah login "$ZOT_REGISTRY" --username "$ZOT_USERNAME" --password-stdin - trap 'buildah logout "$ZOT_REGISTRY" >/dev/null 2>&1 || true' EXIT - - image="$ZOT_REGISTRY/justme/webdrop-api:$CI_COMMIT_TAG" + - image="$ZOT_REGISTRY/justme/webdrop-api:$release_tag" - buildah bud --format docker --platform linux/amd64 --tag "$image" --file server/Dockerfile . - buildah push "$image" "docker://$image" diff --git a/docs/deployment.md b/docs/deployment.md index 29fd0b0..5097fa7 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -34,7 +34,7 @@ CAPTCHA_SECRET= ## Woodpecker CI -`.woodpecker/ci.yml` 在 push 和手动运行时执行 API 契约、Core、Web、服务端检查;每次 push 都会构建前端。`.woodpecker/release-backend.yml` 仅响应 `vMAJOR.MINOR.PATCH` SemVer tag;测试通过后用 Linux native agent 的 Buildah 构建并推送同名后端镜像 tag。两者都通过 Woodpecker secret `gitea_clone_webdrop` 从 `https://git.oeo.one` 克隆私有仓库。 +`.woodpecker/ci.yml` 在 push 和手动运行时执行 API 契约、Core、Web、服务端检查;每次 push 都会构建前端。`.woodpecker/release-backend.yml` 响应 `vMAJOR.MINOR.PATCH` SemVer tag;也可手动运行并传入 `RELEASE_TAG`(例如 `v0.1.0`)。测试通过后用 Linux native agent 的 Buildah 构建并推送同名后端镜像 tag。两者都通过 Woodpecker secret `gitea_clone_webdrop` 从 `https://git.oeo.one` 克隆公开仓库。 两条流水线固定到 `ci: domain-linux-native` 的 `linux/amd64` Agent;该主机需要 Node 24、.NET 10 和 Buildah。Gitea webhook 走同 Docker 网络中的 `woodpecker-server:8000`,代码 clone 走公网 Git 域名。