From b8aed07aa848568c219111b6154db3c8f666c7b5 Mon Sep 17 00:00:00 2001 From: Garrett Mills Date: Sun, 1 Nov 2026 12:16:01 -0600 Subject: [PATCH] CI: add a manual run to deploy from Woodpecker only offers Deploy on a successful pipeline, and the tests can't pass until the builder image exists, so nothing could start the first build. --- .woodpecker/manual.yaml | 17 +++++++++++++++++ README.md | 5 +++++ 2 files changed, 22 insertions(+) create mode 100644 .woodpecker/manual.yaml diff --git a/.woodpecker/manual.yaml b/.woodpecker/manual.yaml new file mode 100644 index 0000000..047f9da --- /dev/null +++ b/.woodpecker/manual.yaml @@ -0,0 +1,17 @@ +# A run that always succeeds, to click "Deploy" on. Woodpecker only offers Deploy +# on a successful pipeline, and check.yaml can't succeed until the builder image +# exists, so this is how to build it the first time. It's also how to publish +# when the newest push failed its tests. +# +# Trigger: click "Run pipeline" in Woodpecker and pick the branch. + +when: + - event: manual + +skip_clone: true + +steps: + - name: ready + image: alpine:3.22 + commands: + - echo "Click Deploy on this pipeline and set the deploy target." diff --git a/README.md b/README.md index ea5e0a6..4fe357f 100644 --- a/README.md +++ b/README.md @@ -246,6 +246,11 @@ click **Deploy**, and set the deploy target: `all` doesn't include `builder`. Rebuild the image after changing its Dockerfile, and before the first run of anything else. +Woodpecker only offers **Deploy** on a successful pipeline, and on a repo with +**Allow deployments** turned on. The tests can't pass until the image exists, +so for the first build, or any time the newest push failed, click **Run +pipeline** and use **Deploy** on that run (`.woodpecker/manual.yaml`). + - **It publishes to the same place you do.** The pipeline mounts the release directory and its keys from the NAS at `/nfs/hal9000/mtgc`, then runs that directory's `update-repo.sh` to copy the public files out, so CI and a dev