Brings the workflows, scripts and fastlane setup up to Agendula's
v1.1.0-beta.1 state:
- beta.yaml: a release/** branch carrying X.Y.Z-beta.N publishes a
Gitea + Codeberg pre-release with the signed APK. Never F-Droid or Play.
- scripts/version_info.sh derives versionCode from versionName for every
workflow and CI step. Clockula has no shipped 1.0.x codes, so it uses one
scheme: X*1000000 + Y*10000 + Z*100 + (beta N, or 99 for stable).
- CI checks the committed versionCode, blocks a beta from reaching main,
enforces the 500-char What's New and validates the store listing.
- Shared publish_gitea_release.sh / publish_codeberg_release.sh /
release_notes.sh replace the inline steps in release.yaml.
- Renovate also runs on every push to main to rebase conflicted PRs.
- jniLibs keepDebugSymbols, which the reproducibility guard now requires.
Fixes a bug present in Agendula too: the Codeberg tag lookups used
/git/refs/tags/{tag}, which matches by prefix, so v1.0.0 would have
"existed" as soon as v1.0.0-beta.1 did. That would have refused every
later beta and skipped the stable release. Both now use /tags/{tag}.
52 lines
2.2 KiB
Bash
Executable File
52 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Single source of truth: fastlane/metadata/android/<locale>/ feeds BOTH the
|
|
# official F-Droid repo (harvested from source automatically) and the
|
|
# self-hosted repo. This script transforms the fastlane layout into the F-Droid
|
|
# "localized" layout that the self-hosted `fdroid update` consumes, so we don't
|
|
# maintain two copies.
|
|
#
|
|
# usage: fastlane_to_fdroid_localized.sh <fastlane_android_dir> <out_localized_dir>
|
|
# e.g. scripts/fastlane_to_fdroid_localized.sh \
|
|
# fastlane/metadata/android \
|
|
# fdroid/metadata/de.jeanlucmakiola.clockula
|
|
#
|
|
# Mapping (fastlane -> F-Droid repo localized):
|
|
# short_description.txt -> summary.txt
|
|
# full_description.txt -> description.txt
|
|
# title.txt -> name.txt
|
|
# images/{icon,featureGraphic,promoGraphic,tvBanner}.* -> same name
|
|
# images/<type>Screenshots/* -> <type>Screenshots/*
|
|
# changelogs/<versionCode>.txt -> changelogs/<versionCode>.txt
|
|
# (changelogs are seeded into the fastlane tree by
|
|
# scripts/sync_changelog_to_fastlane.sh.)
|
|
set -euo pipefail
|
|
|
|
SRC="${1:?need fastlane android dir, e.g. fastlane/metadata/android}"
|
|
OUT="${2:?need output localized dir, e.g. fdroid/metadata/<appid>}"
|
|
|
|
shopt -s nullglob
|
|
for locdir in "$SRC"/*/; do
|
|
loc="$(basename "$locdir")"
|
|
dst="$OUT/$loc"
|
|
mkdir -p "$dst"
|
|
[ -f "$locdir/short_description.txt" ] && cp "$locdir/short_description.txt" "$dst/summary.txt"
|
|
[ -f "$locdir/full_description.txt" ] && cp "$locdir/full_description.txt" "$dst/description.txt"
|
|
[ -f "$locdir/title.txt" ] && cp "$locdir/title.txt" "$dst/name.txt"
|
|
for img in "$locdir"images/{icon,featureGraphic,promoGraphic,tvBanner}.*; do
|
|
cp "$img" "$dst/"
|
|
done
|
|
for shots in "$locdir"images/*Screenshots/; do
|
|
t="$(basename "$shots")"
|
|
mkdir -p "$dst/$t"
|
|
cp "$shots"* "$dst/$t/"
|
|
done
|
|
# Per-version changelogs live in the same fastlane tree (see
|
|
# scripts/sync_changelog_to_fastlane.sh) and map straight across.
|
|
if [ -d "$locdir/changelogs" ]; then
|
|
mkdir -p "$dst/changelogs"
|
|
cp "$locdir"changelogs/* "$dst/changelogs/"
|
|
fi
|
|
done
|
|
|
|
echo "Built F-Droid localized metadata in '$OUT' from '$SRC'"
|