Both siblings' pipelines are near-identical; the real difference between them is which forge is canonical. This is Agendula's spine — it pushes the tag to Codeberg itself and flags pre-1.0 releases as pre-releases — with Calendula's `play` job grafted on unchanged. Taking Agendula's spine means there is no Gitea-canonical phase to migrate out of later, which is the one thing Agendula had to unwind. The Codeberg publish step stays NOT continue-on-error, inherited that way deliberately: in Agendula it reported green through five consecutive releases while never once publishing, which is how a crash-fix release reached F-Droid but not the users who needed it. Comments that recount that history now name Agendula, so an inherited scar isn't misread as ours. The `play` job runs last and isolated, and skips cleanly until PLAY_SERVICE_ACCOUNT_JSON exists — so it stays dormant through the whole pre-1.0 run, which is the correct behaviour anyway. Templates, the contributing guide and verify-release.sh are rewritten for this app's domain rather than renamed: the architectural rule here is that Room types stay in the data layer, and the on-device release check is an alarm that survives a lock screen and a reboot, not a task list that loads. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L94fydiJC37LtxVusNQBDy
40 lines
1.3 KiB
YAML
40 lines
1.3 KiB
YAML
name: Translations
|
|
|
|
# Fast, SDK-free parity check for translation resources, so Weblate PRs (which
|
|
# only touch values-*/strings.xml) get quick feedback without the full Android
|
|
# build. The deeper checks still run in CI via lintDebug (ExtraTranslation).
|
|
#
|
|
# Runs on every PR (no path filter) so the required "Translations / check"
|
|
# status is always reported — like the `ci` job. A path-filtered workflow is
|
|
# skipped on unrelated PRs and never posts its status, which leaves that
|
|
# required check pending forever and blocks the merge of any code-only PR into a
|
|
# release/* branch. The check itself is cheap and simply passes when the
|
|
# committed translations are consistent, so always running it costs nothing.
|
|
on:
|
|
pull_request:
|
|
|
|
concurrency:
|
|
group: translations-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
check:
|
|
runs-on: docker
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Ensure python3
|
|
run: |
|
|
if ! command -v python3 >/dev/null 2>&1; then
|
|
if command -v apt-get >/dev/null 2>&1; then
|
|
apt-get update && apt-get install -y python3
|
|
elif command -v apk >/dev/null 2>&1; then
|
|
apk add --no-cache python3
|
|
fi
|
|
fi
|
|
python3 --version
|
|
|
|
- name: Check translation parity
|
|
run: python3 scripts/check_translations.py
|