Próbuję skonfigurować ciągłą integrację (CI) w wersji Bitbucket Pipelines dla systemu Android.System Android CI korzystający z rurek i dokowania Bitbucket
Utworzono przykładową pustą aktywność przy użyciu Androida Studio 2.1.1.
Z rurociągami korzystam z kontenera dokowanego uber/android-build-environment, który ładnie tworzy otoczenie. Oto potrzebne są moje 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
Niektóre zmiany od uber/android-build-environment spodziewa się być prowadzone w taki sposób:
docker run -i -v $PWD:/project -t uber/android-build-environment /bin/bash /project/ci/build.sh
Na przykład, źródło nie jest kopiowany do objętości /project
ale zamiast Rurociągi kopiuje zawartość z repo Bitbucket do katalogu roboczego pojemnika na:
/opt/atlassian/bitbucketci/agent/build
i kiedy jest ./gradlew assembleDebug
uruchomić pojawia się następujący błąd:
...
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
Running ls -al
w katalogu roboczym daje:
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
Nie znalazłem innej alternatywy niż użycie obrazu dokowanego "uber/android-build-environment: latest" do zbudowania i opartego na Androidzie Gradle'a przy użyciu Bitbucket Pipelines. Czy są na to inne sposoby? Czy rozwiązałeś swój problem? – metch
Niestety jeszcze nie. Wydaje się, że problem dotyczy Pipelines, a nie kontenera build. –
@RyanR I nowość w integracji CI z problemami z konfiguracją programistyczną Androida, więc jeśli to możliwe, możesz pomóc mi w ustawieniu CI za pomocą potoków Bitbucket –