Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8c4f15528c | ||
|
|
cbc54e915b | ||
|
|
86dd20b184 | ||
|
|
6b91ad88e8 | ||
|
|
05f70af7f1 | ||
|
|
c30bbacbbc | ||
|
|
192a3aca0e | ||
|
|
ab3554b746 | ||
|
|
8a71bc237f | ||
|
|
8e155cc0ac | ||
|
|
575ba793ae | ||
|
|
a5572d2cbd | ||
|
|
98b24d84cd | ||
|
|
72c5777508 | ||
|
|
b69041f32a | ||
|
|
9681a47e83 | ||
|
|
524b8f0035 |
+13
-57
@@ -68,18 +68,7 @@ jobs:
|
|||||||
echo "keyPassword=$KEYSTORE_PASSWORD" >> android/key.properties
|
echo "keyPassword=$KEYSTORE_PASSWORD" >> android/key.properties
|
||||||
echo "✅ Keystore configurado"
|
echo "✅ Keystore configurado"
|
||||||
|
|
||||||
# PRO owns the version NAME; every branch advances the build NUMBER.
|
- name: Bump versión patch + commit
|
||||||
#
|
|
||||||
# Previously main also bumped its patch on every push, so main's semver
|
|
||||||
# raced permanently ahead of PRO's (main hit 1.3.3 while the branch that
|
|
||||||
# actually ships sat at 1.3.0). That buried the release artifacts under a
|
|
||||||
# dev branch on builds.freetimelab.es, which sorts by version, and made
|
|
||||||
# every main<->PRO merge conflict on pubspec.yaml.
|
|
||||||
#
|
|
||||||
# The build number still advances everywhere: Google Play requires it to
|
|
||||||
# be monotonic across the whole app, so two branches must never mint the
|
|
||||||
# same code.
|
|
||||||
- name: Bump versión + commit
|
|
||||||
run: |
|
run: |
|
||||||
BRANCH="${CURRENT_REF#refs/heads/}"
|
BRANCH="${CURRENT_REF#refs/heads/}"
|
||||||
git config user.name "ShanaiaBot"
|
git config user.name "ShanaiaBot"
|
||||||
@@ -88,20 +77,12 @@ jobs:
|
|||||||
SEMVER=$(echo "$CURRENT" | cut -d'+' -f1)
|
SEMVER=$(echo "$CURRENT" | cut -d'+' -f1)
|
||||||
BUILD=$(echo "$CURRENT" | cut -d'+' -f2)
|
BUILD=$(echo "$CURRENT" | cut -d'+' -f2)
|
||||||
NEW_BUILD=$((BUILD + 1))
|
NEW_BUILD=$((BUILD + 1))
|
||||||
|
# If the triggering commit explicitly pins the version name via the
|
||||||
# Look for [version set] across EVERY commit this push introduced,
|
# [version set] marker, ship that semver as-is (a milestone like 1.0.0
|
||||||
# not just the tip. `git pull` inserts an auto-generated merge commit
|
# or a major/minor jump the automatic patch bump cannot reach) and only
|
||||||
# whose message carries no marker, which silently discarded a pinned
|
# advance the build number, which Google Play requires to stay
|
||||||
# version name and bumped 1.3.0 to 1.3.1 behind our backs.
|
# monotonic. Otherwise keep the default automatic patch+build bump.
|
||||||
RANGO="${{ gitea.event.before }}..${{ gitea.sha }}"
|
if git log -1 --pretty=%B | grep -q '\[version set\]'; then
|
||||||
if git log "$RANGO" --pretty=%B 2>/dev/null | grep -q '\[version set\]'; then
|
|
||||||
MARCADOR="si"
|
|
||||||
else
|
|
||||||
MARCADOR="no"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$BRANCH" != "PRO" ] || [ "$MARCADOR" = "si" ]; then
|
|
||||||
# Non-release branches never touch the name; PRO respects a pin.
|
|
||||||
NEW_VERSION="${SEMVER}+${NEW_BUILD}"
|
NEW_VERSION="${SEMVER}+${NEW_BUILD}"
|
||||||
else
|
else
|
||||||
MAJOR=$(echo "$SEMVER" | cut -d. -f1)
|
MAJOR=$(echo "$SEMVER" | cut -d. -f1)
|
||||||
@@ -110,8 +91,6 @@ jobs:
|
|||||||
NEW_PATCH=$((PATCH + 1))
|
NEW_PATCH=$((PATCH + 1))
|
||||||
NEW_VERSION="${MAJOR}.${MINOR}.${NEW_PATCH}+${NEW_BUILD}"
|
NEW_VERSION="${MAJOR}.${MINOR}.${NEW_PATCH}+${NEW_BUILD}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "rama=${BRANCH} marcador=${MARCADOR} ${CURRENT} -> ${NEW_VERSION}"
|
|
||||||
sed -i '' "s/^version: .*/version: ${NEW_VERSION}/" pubspec.yaml
|
sed -i '' "s/^version: .*/version: ${NEW_VERSION}/" pubspec.yaml
|
||||||
git add pubspec.yaml
|
git add pubspec.yaml
|
||||||
git commit -m "chore: bump version to ${NEW_VERSION} [ci skip]"
|
git commit -m "chore: bump version to ${NEW_VERSION} [ci skip]"
|
||||||
@@ -276,29 +255,7 @@ jobs:
|
|||||||
ETIQUETA="${BRANCH}-v${VERSION}+${BUILD_NUMBER}"
|
ETIQUETA="${BRANCH}-v${VERSION}+${BUILD_NUMBER}"
|
||||||
APK_NOMBRE="pluriwave-${ETIQUETA}.apk"
|
APK_NOMBRE="pluriwave-${ETIQUETA}.apk"
|
||||||
AAB_NOMBRE="pluriwave-${ETIQUETA}.aab"
|
AAB_NOMBRE="pluriwave-${ETIQUETA}.aab"
|
||||||
# La rama va en el NOMBRE DE LA APP, no en una subcarpeta.
|
DESTINO="/opt/ftl-builds/builds/pluriwave/v${VERSION}"
|
||||||
#
|
|
||||||
# El objetivo sigue siendo el de siempre: que main y PRO no se mezclen
|
|
||||||
# en el portal, que ordena por número de versión y mostraba el build
|
|
||||||
# de desarrollo como "última versión" por delante del de release.
|
|
||||||
#
|
|
||||||
# Pero la primera solución metía la rama como TERCER nivel
|
|
||||||
# (pluriwave/main/v1.3.3/) y el portal indexa solo DOS —
|
|
||||||
# <app>/<versión>/<ficheros> —, así que desde el 29-08 ningún build de
|
|
||||||
# main volvió a aparecer en builds.freetimelab.es aunque el job saliera
|
|
||||||
# verde: el scp subía bien, a una ruta que el indexador no lee. Nada
|
|
||||||
# avisaba, y el echo de abajo se comía la rama y mandaba a la carpeta
|
|
||||||
# antigua, que llevaba congelada desde el +157.
|
|
||||||
#
|
|
||||||
# Con la rama en el nombre, PRO conserva la entrada limpia "pluriwave"
|
|
||||||
# y main tiene la suya, igual que ya conviven radar-foral y
|
|
||||||
# radar-foral-android.
|
|
||||||
if [ "$BRANCH" = "PRO" ]; then
|
|
||||||
APP="pluriwave"
|
|
||||||
else
|
|
||||||
APP="pluriwave-$(echo "$BRANCH" | tr '/' '-')"
|
|
||||||
fi
|
|
||||||
DESTINO="/opt/ftl-builds/builds/${APP}/v${VERSION}"
|
|
||||||
SSH_KEY="/Users/freetlab/.openclaw/workspace/.secure/zimaboard_ed25519"
|
SSH_KEY="/Users/freetlab/.openclaw/workspace/.secure/zimaboard_ed25519"
|
||||||
|
|
||||||
ssh -i "$SSH_KEY" -o StrictHostKeyChecking=no ShanaiaBot@192.168.0.33 "mkdir -p ${DESTINO}"
|
ssh -i "$SSH_KEY" -o StrictHostKeyChecking=no ShanaiaBot@192.168.0.33 "mkdir -p ${DESTINO}"
|
||||||
@@ -308,11 +265,8 @@ jobs:
|
|||||||
scp -i "$SSH_KEY" -o StrictHostKeyChecking=no \
|
scp -i "$SSH_KEY" -o StrictHostKeyChecking=no \
|
||||||
build/app/outputs/bundle/release/app-release.aab \
|
build/app/outputs/bundle/release/app-release.aab \
|
||||||
"ShanaiaBot@192.168.0.33:${DESTINO}/${AAB_NOMBRE}"
|
"ShanaiaBot@192.168.0.33:${DESTINO}/${AAB_NOMBRE}"
|
||||||
# La ruta se imprime desde ${APP}, no a mano: la version anterior tenia
|
echo "✅ APK: builds.freetimelab.es → pluriwave → v${VERSION} → ${APK_NOMBRE}"
|
||||||
# "pluriwave" escrito a fuego y mandaba a la carpeta equivocada cada
|
echo "✅ AAB: builds.freetimelab.es → pluriwave → v${VERSION} → ${AAB_NOMBRE}"
|
||||||
# vez que se compilaba algo que no fuera PRO.
|
|
||||||
echo "✅ APK: builds.freetimelab.es → ${APP} → v${VERSION} → ${APK_NOMBRE}"
|
|
||||||
echo "✅ AAB: builds.freetimelab.es → ${APP} → v${VERSION} → ${AAB_NOMBRE}"
|
|
||||||
|
|
||||||
# La publicacion automatica en Google Play es OPCIONAL.
|
# La publicacion automatica en Google Play es OPCIONAL.
|
||||||
#
|
#
|
||||||
@@ -365,7 +319,9 @@ jobs:
|
|||||||
if [ -z "$BOT_TOKEN" ]; then exit 0; fi
|
if [ -z "$BOT_TOKEN" ]; then exit 0; fi
|
||||||
if [ "${{ job.status }}" = "success" ]; then
|
if [ "${{ job.status }}" = "success" ]; then
|
||||||
MSG="✅ *PluriWave* v${VERSION} · rama ${BRANCH} · ${COMMIT}%0AAPK + AAB generados"
|
MSG="✅ *PluriWave* v${VERSION} · rama ${BRANCH} · ${COMMIT}%0AAPK + AAB generados"
|
||||||
# Solo se anuncia la subida a Play cuando de verdad ocurrio.
|
# Solo se anuncia la subida a Play cuando de verdad ocurrio: el paso
|
||||||
|
# se omite si falta el secreto, y un aviso que dice "publicado"
|
||||||
|
# cuando no se publico es peor que no avisar.
|
||||||
if [ "$BRANCH" = "PRO" ] && [ "${{ steps.credenciales_play.outputs.disponible }}" = "si" ]; then
|
if [ "$BRANCH" = "PRO" ] && [ "${{ steps.credenciales_play.outputs.disponible }}" = "si" ]; then
|
||||||
MSG="${MSG}%0APublicado en Google Play · Internal Testing"
|
MSG="${MSG}%0APublicado en Google Play · Internal Testing"
|
||||||
elif [ "$BRANCH" = "PRO" ]; then
|
elif [ "$BRANCH" = "PRO" ]; then
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
name: pluriwave
|
name: pluriwave
|
||||||
description: "Radio mundial con ecualizador, reconocimiento de canciones y UI premium"
|
description: "Radio mundial con ecualizador, reconocimiento de canciones y UI premium"
|
||||||
publish_to: 'none'
|
publish_to: 'none'
|
||||||
version: 1.3.3+162
|
version: 1.3.4+162
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ^3.7.0
|
sdk: ^3.7.0
|
||||||
|
|||||||
Reference in New Issue
Block a user