Probando los flujos de trabajo de Github Actions para Android localmente usando Docker | de Lukasz Kalnik | diciembre 2022

Imagen de Freddy de Pixabay Al editar sus flujos de trabajo de Github Actions, sería bueno poder probarlos localmente para tener un ciclo de retroalimentación rápido si algo no funciona. De lo contrario, tendrá que esperar a que Github Actions ejecute la acción (lo que podría no suceder durante semanas en las compilaciones de Sprint o las compilaciones de lanzamiento de Play Store) solo para descubrir más tarde que el flujo de trabajo modificado tiene un error y no se ejecutará cuando sea necesario. es más necesario Esto es posible con Docker y un corredor de acción local llamado act. La siguiente guía es específica para probar los flujos de trabajo de aplicaciones de Android en una Mac, pero debe ser lo suficientemente simple para adaptarse a otras plataformas.
- Descargar e instalar Docker Desktop
- Instalar acto:
brew install actAct ejecuta sus flujos de trabajo desde el directorio .github/workflows de forma predeterminada. Esto significa que necesita ejecutar act desde la raíz de su proyecto. Sin embargo, Act no sabe nada sobre las variables de entorno de Github específicas de su proyecto, los secretos del proyecto o el SDK de Android que usa para construir su proyecto. Así que necesitas preparar tu proyecto primero.
Contenidos
Configurar el SDK de Android
Dado que la imagen de Act Docker no viene con un SDK de Android preinstalado, puede solucionar esto agregando temporalmente la acción setup-android a su archivo .yml de flujo de trabajo. Simplemente agregue las dos líneas a su flujo de trabajo (asegúrese de no hacerlo). Transfiéralos ya que es probable que sus ejecutores de Github Actions ya tengan el SDK de Android preinstalado): – nombre: Configure Android SDKuses: android-actions/setup-android@v2.0.10
Establecer ANDROID_HOME
Desafortunadamente, la acción de configuración de Android no establece automáticamente la variable de entorno ANDROID_HOME. Para hacerlo usted mismo, puede crear un archivo .env en la carpeta raíz de su proyecto que contenga sus variables de entorno. El archivo debe contener la siguiente línea: ANDROID_HOME= /root/.android/sdk Recuerde agregar el archivo .env a su archivo .gitignore, ya que solo se necesita localmente.
Configurar secretos de proyecto
Los flujos de trabajo de Github Actions a menudo requieren GITHUB_TOKEN y otros secretos relacionados con el proyecto (por ejemplo, PACKAGES_READ_TOKEN, varias claves API que usa su aplicación, etc.). Puede configurar todos los secretos de su proyecto en un archivo .secrets en la carpeta raíz de su proyecto.IMPORTANTE: Asegúrese de agregar el .misterios archivo a .ignorar.git¡ya que sus secretos nunca deben ser enviados y enviados a Github!Para generar un GITHUB_TOKEN o PACKAGES_READ_TOKEN, debe ir a la configuración de desarrollador de Github, generar un nuevo token de acceso personal, copiarlo y asegurarse de haber autorizado el token para acceder a la organización relevante donde se encuentra su repositorio (si es necesario). Luego dentro del . archivo de secretos, puede agregar sus secretos de esta manera: GITHUB_TOKEN=your_generated_tokenPACKAGES_READ_TOKEN=your_generated_tokenUNA NOTICIA: Si define variables de cadena en su proyecto, que luego se convierten en campos BuildConfig en sus archivos build.gradle.kts, debe encerrarlos entre comillas de escape internas \» y luego entre comillas externas «, así: SOME_API_KEY=» \»your_api_key\»»Esto se debe a la forma en que funciona la generación del campo BuildConfig para cadenas. Para ejecutar las acciones, primero abra la terminal y cambie el directorio actual a la raíz de su proyecto. A menos que especifique lo contrario, act enviará el evento push para activar sus flujos de trabajo. También puede enviar otros eventos; consulte otras opciones.
Se ejecuta con el servidor de artefactos
Si usa acciones/cargar artefacto o acciones/descargar artefacto en su flujo de trabajo, necesita crear un directorio local en su máquina que se usará para un servidor de artefactos simulado: mkdir /tmp/artifacts, y luego pasar ese directorio a act con el parámetro –artifact-server-path :act –artifact-server-path /tmp/artifacts Esto ejecutará los flujos de trabajo en su proyecto y enviará cualquier artefacto al directorio especificado donde podrá examinarlo más tarde.
Se ejecuta sin un servidor de artefactos
Simplemente vaya a su proyecto y ejecute ¡Eso es todo! ¡Diviértete probando tus flujos de trabajo!