vienalatina/.woodpecker.yml
Pablo Volenski ea6db6ecbd
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Install git in the translate step's container
2026-09-14 14:45:51 +00:00

48 lines
1.6 KiB
YAML

# Woodpecker CI: translate → build → deploy
#
# Triggered by the Gitea push webhook. The translate step replaces the old
# synchronous WordPress save_post hook: publishing in Decap is one git
# commit, translation happens here, asynchronously, and every DeepL output
# lands as a reviewable bot commit.
#
# Secrets to configure in Woodpecker (repo settings → secrets):
# deepl_api_key — DeepL free-tier key (500k chars/mo)
# gitea_push_token — Gitea token for the translations bot user
# (translations@vienalatina.com) with repo write access
#
# The deploy step writes to the Caddy web root via a host mount, which
# requires the repo to be marked "trusted" in Woodpecker.
when:
- event: push
branch: main
steps:
translate:
image: python:3.12-slim
environment:
DEEPL_API_KEY:
from_secret: deepl_api_key
GITEA_PUSH_TOKEN:
from_secret: gitea_push_token
commands:
# translate.py shells out to git (rev-list/diff/add/commit/push) — the slim image doesn't ship it.
- apt-get update -qq && apt-get install -qq -y --no-install-recommends git
- pip install --quiet requests pyyaml
- python scripts/translate.py
build:
image: hugomods/hugo:0.135.0
commands:
# Bundle Decap locally so the /admin page makes zero third-party requests.
- wget -q -O static/admin/decap-cms.js https://unpkg.com/decap-cms@^3.0.0/dist/decap-cms.js
- hugo --minify
deploy:
image: alpine:3.20
volumes:
- /var/www/vienalatina.com:/deploy-target
commands:
- apk add --no-cache rsync
- rsync -a --delete public/ /deploy-target/