22

Tôi đang cố gắng thiết lập Tích hợp liên tục (CI) trong Bitbucket Pipelines cho Android.CI Android sử dụng Đường ống Bitbucket và Docker

Tôi đã tạo hoạt động trống mẫu bằng Android Studio 2.1.1.

Với đường ống tôi đang sử dụng hộp chứa Docker uber/android-build-environment tạo môi trường độc đáo. Dưới đây là 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 

Một số của tôi thay đổi là cần thiết kể từ uber/android-build-environment hy vọng sẽ được chạy như vậy:

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

Ví dụ, nguồn không được sao chép vào khối lượng /project nhưng thay vào đó Đường ống sao chép nội dung của repo Bitbucket vào thư mục làm việc của thùng chứa tại:

/opt/atlassian/bitbucketci/agent/build 

Và khi ./gradlew assembleDebug là chạy tôi nhận được lỗi sau:

... 

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 

Chạy ls -al trong thư mục làm việc cho:

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 
+0

Tôi không tìm thấy giải pháp thay thế nào khác ngoài việc sử dụng hình ảnh Docker 'uber/android-build-environment: latest' để xây dựng và trình Projet dựa trên Gradle của Android sử dụng Bitbucket Pipelines. Có cách nào khác để làm điều đó không? Bạn đã giải quyết được vấn đề của mình chưa? – metch

+0

Thật không may là chưa. Điều này có vẻ là một vấn đề với Pipelines không phải là container xây dựng. –

+0

@RyanR Tôi mới tích hợp CI gặp sự cố với thiết lập phát triển Android vì vậy nếu có thể bạn có thể giúp tôi với cài đặt CI với đường ống Bitbucket –

Trả lời

10

Đó là một lỗi trong hệ thống của họ, tôi báo cáo (issue url, nó khá dài) đối với họ và họ đã cố định nó (fix url) .Tôi có thử nghiệm trên dự án của tôi và nó thành công build.Try để xây dựng dự án của bạn bây giờ và may mắn.

+0

Cảm ơn, có dự án hiện đã xây dựng thành công. –

+0

lý do tại sao tôi nhận được _ + ./gradlew assembleDebug bash: ./gradlew: Không có tệp hoặc thư mục nào như vậy_ –

+0

@RyanR bạn có thể chia sẻ tệp bitbucket-pipelines.yml hoạt động không? và nơi tôi phải đặt _docker run -i -v $ PWD:/project ......._? trong tập tin yml chỉ tôi phải đặt cái này! Bất kỳ thông tin sẽ được biết ơn. –

0

Ông có thể liên kết mềm dự án của bạn /opt/atlassian/bitbucketci/agent/build-/project từ bên trong container? ln -s /opt/atlassian/bitbucketci/agent/build /project là lệnh bạn cần.

hoặc cách khác là sao chép tệp sang đường dẫn mới?

Tôi không có kinh nghiệm với sự phát triển Android, do đó, YMMV :)

Các vấn đề liên quan