CI: build and publish every package from Woodpecker

Pushes to main run the tests. The Deploy button publishes the Windows, RPM,
deb and F-Droid packages to the same NAS directories a dev machine uses, with
the same keys, then runs update-repo.sh, so public URLs don't change.

Builds run on Debian 12, in an image defined in ci/builder, so the Linux
packages now need glibc 2.36 instead of Fedora 44's 2.43.
This commit is contained in:
2026-11-01 11:54:49 -06:00
parent c7572ae7b0
commit a9ed6456da
10 changed files with 440 additions and 13 deletions

42
.woodpecker/check.yaml Normal file
View File

@@ -0,0 +1,42 @@
# Test every push to main. Its pipeline is also the one to click "Deploy" on;
# see release.yaml.
when:
- event: push
branch: main
steps:
- name: prepare
image: alpine:3.22
volumes:
- mtgc-ci-cache:/cache
commands:
- chown -R 1000:1000 /woodpecker
- chown 1000:1000 /cache
- name: test
image: registry.apps.millslan.net/garrettmills/mtgc-builder:latest
pull: true
volumes:
- mtgc-ci-cache:/cache
environment:
HOME: /cache/home
CARGO_HOME: /cache/cargo
CARGO_TARGET_DIR: /cache/target-test
CARGO_BUILD_JOBS: "4"
backend_options:
kubernetes:
securityContext:
runAsUser: 1000
runAsGroup: 1000
resources:
requests:
cpu: "4"
memory: 6Gi
limits:
memory: 12Gi
commands:
- mkdir -p "$HOME"
- npm ci
- npm run build
- cargo test --locked -p mtgc-core -p mtgc -p mtgc-server