01042bc23c
Nuevas funciones bash: gestión Gitea (create_repo, list_repos, add_collaborator, push_directory), install_android_sdk, install_mantine, frontend_doctor. Pipelines: capacitor_build_apk y gitea_init_app. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
3.7 KiB
3.7 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | params | output | tested | tests | test_file_path | file_path | |||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| capacitor_build_apk | pipeline | bash | pipelines | 1.0.0 | impure | capacitor_build_apk(web_app_dir: string, [app_id: string], [app_name: string]) -> void | Pipeline que convierte una web app en un APK de Android usando Capacitor. Valida el entorno (ANDROID_HOME, Java 17+), construye el bundle web si no existe dist/, inicializa Capacitor si no está configurado, añade la plataforma Android, sincroniza y compila el APK con Gradle. El APK final queda en el directorio raíz de la web app. |
|
|
false | error_go_core |
|
APK de debug en <web_app_dir>/<app_name>.apk; imprime ruta y tamaño en MB al finalizar | false | bash/functions/pipelines/capacitor_build_apk.sh |
Ejemplo
# Build con defaults (app-id y app-name desde package.json)
./bash/functions/pipelines/capacitor_build_apk.sh ~/projects/my-web-app
# Build especificando app-id y app-name
./bash/functions/pipelines/capacitor_build_apk.sh ~/projects/my-web-app \
--app-id com.miempresa.miapp \
--app-name "Mi Aplicación"
Flujo
- Validación — verifica que
web_app_direxiste, tienepackage.json, queANDROID_HOMEestá seteado (o sourcea$HOME/android-sdk/env.sh) y que Java 17+ está disponible. - Build web — si no existe
dist/, ejecutapnpm builden el directorio de la app. - Init Capacitor — si no existe
capacitor.config.ts, instala@capacitor/core,@capacitor/cliy@capacitor/androidvia npm y genera el archivo de configuración con elappId,appNameywebDir: dist. - Add Android — si no existe el directorio
android/, ejecutanpx cap add android. - Sync — ejecuta
npx cap sync androidpara copiar los assets web al proyecto Android. - Build APK — ejecuta
./gradlew assembleDebugdesdeandroid/; si falla sale con exit 1. - Copia APK — copia
android/app/build/outputs/apk/debug/app-debug.apka<web_app_dir>/<app_name>.apk. - Resultado — imprime la ruta del APK y su tamaño en MB.
Requisitos
- Node.js y pnpm disponibles en PATH
- Java 17+ disponible en PATH
- Android SDK instalado:
ANDROID_HOMEseteado, o bien$HOME/android-sdk/env.shexistente (generado porinstall_android_sdk) - Gradle wrapper presente en el directorio
android/(generado porcap add android)
Notas
El pipeline usa set -euo pipefail — cualquier fallo detiene la ejecución inmediatamente.
El APK generado es un debug build, apto para desarrollo y pruebas. Para publicar en Play Store se necesita un release build firmado (assembleRelease con un keystore).
install_android_sdk_bash_infra se referencia como dependencia previa: el usuario debe haberlo ejecutado (o haber instalado el SDK manualmente) antes de invocar este pipeline.
La detección del app_name desde package.json usa node -e inline, lo que requiere que Node.js esté disponible. Si el campo name no existe en el JSON, se usa el valor por defecto app.
Para instalar el APK en un dispositivo Android conectado por USB (con depuración USB activada):
adb install <web_app_dir>/<app_name>.apk