node - Android CI usando las tuberías de Bitbucket y Docker
pipeline aws bitbucket (3)
¿Podría vincular su proyecto de /opt/atlassian/bitbucketci/agent/build
a /project
desde dentro del contenedor? ln -s /opt/atlassian/bitbucketci/agent/build /project
es el comando que necesitará.
o alternativamente copiar los archivos a la nueva ruta?
No tengo experiencia con el desarrollo de Android, así que YMMV :)
Estoy tratando de configurar la integración continua (CI) en las tuberías de Bitbucket para Android.
He creado una muestra de actividad en blanco usando Android Studio 2.1.1.
Con Pipelines estoy usando el contenedor Docker de uber/android-build-environment que crea muy bien el ambiente. Aquí está mi bitbucket-pipelines.yml
image: uber/android-build-environment:latest
pipelines:
default:
- step:
script:
- echo y | android update sdk --filter "extra-android-m2repository" --no-ui -a # Grab the Android Support Repo which isn''t included in the container
- ./gradlew assembleDebug
Algunos cambios son necesarios ya que uber/android-build-environment espera ejecutarse así:
docker run -i -v $PWD:/project -t uber/android-build-environment /bin/bash /project/ci/build.sh
Por ejemplo, la fuente no se copia al volumen /project
sino que Pipelines copia el contenido del repositorio de Bitbucket en el directorio de trabajo del contenedor en:
/opt/atlassian/bitbucketci/agent/build
Y cuando se ejecuta ./gradlew assembleDebug
aparece el siguiente error:
...
FAILURE: Build failed with an exception.
* What went wrong:
Could not create service of type TaskArtifactStateCacheAccess using TaskExecutionServices.createCacheAccess().
> Failed to create parent directory ''/opt/atlassian/bitbucketci/agent/build/.gradle'' when creating directory ''/opt/atlassian/bitbucketci/agent/build/.gradle/2.10/taskArtifacts''
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 56.449 secs
Ejecutando ls -al
en el directorio de trabajo da:
ls -al
total 52
drwxr-xr-x 5 root root 4096 May 31 22:33 .
drwxr-xr-x 3 root root 4096 May 31 22:43 ..
drwxr-xr-x 3 root root 4096 May 31 22:33 app
-rw-r--r-- 1 root root 462 May 31 22:33 bitbucket-pipelines.yml
-rw-r--r-- 1 root root 498 May 31 22:33 build.gradle
drwxr-xr-x 8 root root 4096 May 31 22:33 .git
-rw-r--r-- 1 root root 387 May 31 22:33 .gitignore
drwxr-xr-x 3 root root 4096 May 31 22:33 gradle
-rw-r--r-- 1 root root 855 May 31 22:33 gradle.properties
-rwxr-xr-x 1 root root 4971 May 31 22:33 gradlew
-rw-r--r-- 1 root root 2314 May 31 22:33 gradlew.bat
-rw-r--r-- 1 root root 15 May 31 22:33 settings.gradle
Es un error en su sistema, lo informo ( problema url , es bastante largo) para ellos y lo han arreglado ( corregir url ). He probado en mi proyecto y lo construí con éxito. Intente construir su proyecto ahora y buena suerte .
Parece que uber/android-build-environment
ya no es compatible.
Terminé usando javiersantos/android-ci
que funciona perfectamente desde cero.
Solo agrega el siguiente contenido a bitbucket-pipeline.yml:
image: javiersantos/android-ci:27.0.3
pipelines:
default:
- step:
script:
- export GRADLE_USER_HOME=`pwd`/.gradle
- chmod +x ./gradlew
- ./gradlew assembleDebug