pipelines node name images aws and android docker continuous-integration bitbucket bitbucket-pipelines

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