ci: publicar los builds de main donde el portal sabe leerlos
Desde el 29-08 ningun build de main volvio a aparecer en builds.freetimelab.es, y nada avisaba: el job salia verde porque el scp subia correctamente, solo que a una ruta que el indexador no lee. El portal indexa DOS niveles, <app>/<version>/<ficheros>. La solucion anterior metia la rama como TERCER nivel (pluriwave/main/v1.3.3/), asi que sus ficheros quedaban fuera del indice: 39 versiones listadas, ninguna con "main", ninguna con los codigos 158, 159 ni 160. Encima el echo del propio paso tenia "pluriwave" escrito a fuego y anunciaba la carpeta antigua, congelada desde el +157, que es justo donde se miraba al no encontrar nada. Ahora la rama va en el NOMBRE DE LA APP, que es lo que el portal si entiende. PRO conserva la entrada limpia "pluriwave" y main tiene la suya, igual que ya conviven radar-foral y radar-foral-android. Se cumple el objetivo original -- que el build de desarrollo no aparezca como ultima version de release -- sin romper el indexado. La ruta impresa se deriva de la misma variable, para que no puedan volver a desincronizarse. Se alinea tambien el arreglo del secreto de Google Play que ya esta en PRO: el paso se omite con un aviso en vez de hacer `exit 1`, y el mensaje de Telegram deja de afirmar que se publico algo que no se publico. main nunca ejecuta esos pasos, pero mantener un unico workflow evita conflictos en cada trasvase entre ramas.
This commit is contained in:
+51
-11
@@ -276,10 +276,29 @@ jobs:
|
||||
ETIQUETA="${BRANCH}-v${VERSION}+${BUILD_NUMBER}"
|
||||
APK_NOMBRE="pluriwave-${ETIQUETA}.apk"
|
||||
AAB_NOMBRE="pluriwave-${ETIQUETA}.aab"
|
||||
# Carpeta por rama: main y PRO ya no se mezclan en el portal, que
|
||||
# ordena por número de versión y por tanto mostraba el build de
|
||||
# desarrollo como "última versión" por delante del de release.
|
||||
DESTINO="/opt/ftl-builds/builds/pluriwave/${BRANCH}/v${VERSION}"
|
||||
# La rama va en el NOMBRE DE LA APP, no en una subcarpeta.
|
||||
#
|
||||
# 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 -i "$SSH_KEY" -o StrictHostKeyChecking=no ShanaiaBot@192.168.0.33 "mkdir -p ${DESTINO}"
|
||||
@@ -289,28 +308,46 @@ jobs:
|
||||
scp -i "$SSH_KEY" -o StrictHostKeyChecking=no \
|
||||
build/app/outputs/bundle/release/app-release.aab \
|
||||
"ShanaiaBot@192.168.0.33:${DESTINO}/${AAB_NOMBRE}"
|
||||
echo "✅ APK: builds.freetimelab.es → pluriwave → v${VERSION} → ${APK_NOMBRE}"
|
||||
echo "✅ AAB: builds.freetimelab.es → pluriwave → v${VERSION} → ${AAB_NOMBRE}"
|
||||
# La ruta se imprime desde ${APP}, no a mano: la version anterior tenia
|
||||
# "pluriwave" escrito a fuego y mandaba a la carpeta equivocada cada
|
||||
# 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.
|
||||
#
|
||||
# Este paso hacia `exit 1` cuando faltaba el secreto, asi que TODA
|
||||
# compilacion de PRO terminaba en rojo por una funcion que nunca llego a
|
||||
# activarse: el secreto no se configuro nunca y las subidas a Play se han
|
||||
# hecho siempre a mano. Un rojo permanente entrena a ignorar los rojos, y
|
||||
# entonces el dia que falle algo de verdad tampoco se mira.
|
||||
#
|
||||
# Ahora se omite con un aviso. El AAB ya esta compilado, firmado y subido
|
||||
# a ftl-builds por el paso anterior, asi que no se pierde nada. El dia que
|
||||
# se configure el secreto, los tres pasos se activan solos.
|
||||
- name: Preparar credenciales de Google Play
|
||||
id: credenciales_play
|
||||
if: ${{ gitea.ref == 'refs/heads/PRO' }}
|
||||
env:
|
||||
GOOGLE_PLAY_SERVICE_ACCOUNT_JSON: ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_JSON }}
|
||||
run: |
|
||||
if [ -z "$GOOGLE_PLAY_SERVICE_ACCOUNT_JSON" ]; then
|
||||
echo "ERROR: falta el secreto GOOGLE_PLAY_SERVICE_ACCOUNT_JSON"
|
||||
exit 1
|
||||
echo "disponible=no" >> "$GITHUB_OUTPUT"
|
||||
echo "AVISO: falta el secreto GOOGLE_PLAY_SERVICE_ACCOUNT_JSON."
|
||||
echo "Se omite la publicacion en Google Play; sube el AAB a mano."
|
||||
exit 0
|
||||
fi
|
||||
mkdir -p fastlane/credentials
|
||||
printf '%s' "$GOOGLE_PLAY_SERVICE_ACCOUNT_JSON" > fastlane/credentials/google-play-service-account.json
|
||||
echo "disponible=si" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Instalar Fastlane
|
||||
if: ${{ gitea.ref == 'refs/heads/PRO' }}
|
||||
if: ${{ gitea.ref == 'refs/heads/PRO' && steps.credenciales_play.outputs.disponible == 'si' }}
|
||||
run: |
|
||||
gem list -i fastlane >/dev/null 2>&1 || gem install fastlane --no-document
|
||||
|
||||
- name: Publicar AAB en Google Play Internal Testing
|
||||
if: ${{ gitea.ref == 'refs/heads/PRO' }}
|
||||
if: ${{ gitea.ref == 'refs/heads/PRO' && steps.credenciales_play.outputs.disponible == 'si' }}
|
||||
env:
|
||||
PLAY_JSON_KEY_PATH: fastlane/credentials/google-play-service-account.json
|
||||
PLAY_AAB_PATH: build/app/outputs/bundle/release/app-release.aab
|
||||
@@ -328,8 +365,11 @@ jobs:
|
||||
if [ -z "$BOT_TOKEN" ]; then exit 0; fi
|
||||
if [ "${{ job.status }}" = "success" ]; then
|
||||
MSG="✅ *PluriWave* v${VERSION} · rama ${BRANCH} · ${COMMIT}%0AAPK + AAB generados"
|
||||
if [ "$BRANCH" = "PRO" ]; then
|
||||
# Solo se anuncia la subida a Play cuando de verdad ocurrio.
|
||||
if [ "$BRANCH" = "PRO" ] && [ "${{ steps.credenciales_play.outputs.disponible }}" = "si" ]; then
|
||||
MSG="${MSG}%0APublicado en Google Play · Internal Testing"
|
||||
elif [ "$BRANCH" = "PRO" ]; then
|
||||
MSG="${MSG}%0AEn builds.freetimelab.es · sube el AAB a Play a mano"
|
||||
else
|
||||
MSG="${MSG}%0APublicado en builds.freetimelab.es"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user