Android CI utilizzando pipeline Bitbucket e Docker

Sto cercando di impostare Continuous Integration (CI) in Bitbucket Pipelines per Android.

Ho creato un'attività di campionamento vuoto utilizzando Android Studio 2.1.1.

  • Come annullare il timer e rinnovare lo stesso timer?
  • Cambiare la lingua in runtime in Android
  • Trust solo certificato specifico emesso da CA - Android
  • Qual è la differenza tra BaseAdapter e ArrayAdapter?
  • Ottenere l'istanza Fragment corrente nel viewpager
  • Android Studio: Creazione di layout di paesaggio
  • Con le condutture sto utilizzando il contenitore Docker uber / android-build-environment che crea bene l'ambiente. Ecco il mio 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 

    Alcune modifiche sono necessarie poiché l'ambiente uber / android-build-environment prevede di essere eseguito in questo modo:

     docker run -i -v $PWD:/project -t uber/android-build-environment /bin/bash /project/ci/build.sh 

    Ad esempio, l'origine non viene copiata nel volume /project ma invece Pipelines copia il contenuto del repo Bitbucket nella directory di lavoro del contenitore in:

     /opt/atlassian/bitbucketci/agent/build 

    E quando viene eseguito ./gradlew assembleDebug ottengo il seguente errore:

     ... 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 

    L'esecuzione di ls -al nella directory di lavoro dà:

     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 

  • Google Map V2 con android non funziona?
  • Android Login di Facebook: Come controllare il login utilizzando LoginManager senza avere LoginButton in XML
  • Gli events di analisi Firebase non mostrano valore
  • come mostrare la barra di avanzamento prima di riprodurre il video
  • Lista Intent.putExtra
  • MediaPlayer prepara Errore non corretto (1, -17) quando si utilizza il file registrato .3gp
  • 2 Solutions collect form web for “Android CI utilizzando pipeline Bitbucket e Docker”

    È un bug nel loro sistema, lo riferisco ( url , è abbastanza lungo) a loro e lo hanno risolto ( url di fix ). Ho testato sul mio progetto e ho costruito con successo. Prova a build il tuo progetto e buona fortuna .

    Puoi sincronizzare il tuo progetto da /opt/atlassian/bitbucketci/agent/build a /project dall'interno del contenitore? ln -s /opt/atlassian/bitbucketci/agent/build /project è il command che ti serve.

    o in alternativa copiare i file nel nuovo path?

    Non ho esperienza con lo sviluppo di android, quindi YMMV 🙂

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.