2014-09-12 16 views
5

Có ai có tài nguyên tốt để thiết lập Bamboo để thực hiện CI với các dự án Android không? Tôi đã thiết lập của tôi để kéo nguồn và biên dịch nó với kiến. Nhưng tôi rất muốn biết cách thiết lập các bài kiểm tra JUnit, nơi các bài kiểm tra nằm trong một dự án riêng biệt.Android CI với Atlassian Bamboo

Cảm ơn

+0

Bạn có thể chia sẻ hướng dẫn xây dựng dự án Android bằng cách sử dụng gradle tại đây hay không. – CoDe

+0

Chúng tôi đã cài đặt trình cắm thêm JFrog Artifactory vào tre, nó có một tác vụ hoàn thiện. Bạn không cần phải sử dụng JFrog để sử dụng. Sau đó bạn có thể chỉ cần nói tên tác vụ theo các loại nhiệm vụ "clean assembleDebug" – bhawkins

+0

Điều đó tôi đã thử nhưng có điều gì đó không ổn. Thời gian qua khi tôi thử điều này, ít nhất là xây dựng đã bắt đầu và ném đầu ra thất bại, nhưng lần này không có gì xảy ra. Hãy để tôi kiểm tra bên cạnh tôi, sẽ sớm quay trở lại bạn. – CoDe

Trả lời

2

Tôi đã tìm ra cách thực hiện việc này bằng cách sử dụng Bamboo CI và các dự án Android Studio mới với mức độ ưu việt. Bamboo không có nhiều công việc tốt nhưng bạn có thể tận dụng hệ điều hành kịch bản để làm điều đó. Chúng tôi thiết lập các tác vụ xây dựng cơ bản của chúng tôi như sau:

Mã nguồn Checkout. Script nhiệm vụ:

  • Script Location: Inline
  • Script Body: test assembleDebug gradlew.bat (server tre của chúng tôi là Windows vì vậy chúng tôi sử dụng các file bat, Linux sử dụng lệnh kiểm tra assembleDebug ./gradlew)

Sau đó chúng ta thêm một nhiệm vụ cuối cùng của phân tích cú pháp JUnit, và chúng tôi sử dụng dòng thư mục kết quả của: **/thử nghiệm kết quả/debug/* xml

Như để thử nghiệm chúng tôi sử dụng Robolectric Gradle kiểm tra, mà tạo ra. Kết quả kiểm tra JUnit.

Tôi hy vọng điều này sẽ giúp bất kỳ ai khác đang tìm cách thiết lập Bamboo với Android, hy vọng họ sẽ thêm hỗ trợ một ngày như họ làm cho. NET, nơi chỉ là một tác vụ duy nhất được xây dựng và thử nghiệm. Lệnh kịch bản cảm thấy loại hack.

Nếu ai đó đang tìm kiếm các bài kiểm tra kiểu Ant, tôi có thể chia sẻ điều đó nhưng hy vọng bây giờ mọi người đã chuyển sang Android Studio từ nhật thực. Tôi sẽ nói rằng các bước cần thiết cho Ant và Instrumentation mất rất nhiều thời gian để thiết lập và tôi đã phải sử dụng một trình mô phỏng đang chạy trên máy chủ để thực hiện các kiểm tra.

+1

Nhiệm vụ của tôi là tìm kiếm các báo cáo thử nghiệm bên ngoài kho lưu trữ, như thế này: '' 'Không thể tìm thấy báo cáo kết quả kiểm tra trong thư mục/Users//bamboo-agent-home/xml-data/build-dir/'' ' –

+0

Điều này chỉ hoạt động nếu một thiết bị được kết nối hoặc bộ mô phỏng được khởi động. – Roel

0

Ngoài việc sử dụng Bamboo để tạo APK cho dự án Android của mình, tôi cũng muốn sử dụng Bamboo để chạy các thử nghiệm dựa trên JUnit dựa trên trình giả lập Android. Sau một chút "thử nghiệm và lỗi" chủ yếu xung quanh việc tìm kiếm một cách đáng tin cậy để bắt đầu và dừng trình giả lập Android, đây là những gì tôi nghĩ ra cho kế hoạch xây dựng Bamboo của tôi. Xem Bamboo waits for script task to terminate, although it is run in the background để biết thêm thông tin cơ bản về lý do tại sao tôi thực hiện phương pháp được mô tả bên dưới.

Gói tre của tôi có một giai đoạn với hai công việc. Các công việc chạy bằng hai tác nhân thực thi trên cùng một hệ thống. Cả hai công việc đều bắt đầu và chạy song song. Một công việc bắt đầu trình mô phỏng Android bằng cách sử dụng lệnh giả lập SDK Android. Công việc khác chờ bộ mô phỏng bắt đầu, xây dựng ứng dụng di động, chạy các kiểm tra đối với trình giả lập và sau đó dừng trình mô phỏng đang chạy bằng cách sử dụng tác vụ cuối cùng luôn được thực thi ngay cả khi tác vụ trước đó trong công việc xây dựng thất bại.

Công việc giả lập không bị "kẹt" sau khi khởi chạy trình mô phỏng vì nó đang chờ quá trình giả lập kết thúc. Khi công việc xây dựng chạy, nhiệm vụ cuối cùng trong công việc xây dựng sẽ dừng trình mô phỏng làm cho công việc giả lập kết thúc vì quá trình giả lập không còn chạy nữa.

Dưới đây là các chi tiết nhiệm vụ trọng tâm cho công việc xây dựng:

nhiệm vụ đầu tiên là một nhiệm vụ kịch bản mà chờ đợi cho các giả lập để bắt đầu. Lệnh adb -s dưới đây sẽ không làm cho tác vụ này thất bại nếu giả lập không khởi động được.

echo "Waiting 60 seconds for the Android emulator to start" 
sleep 60 
echo "See if Emulator is up and running" 
${bamboo.ANDROID_HOME}/platform-tools/adb -s emulator-5554 shell getprop dev.bootcomplete 

Nhiệm vụ thứ hai và thứ ba kiểm tra nguồn và tạo ứng dụng bằng Gradle. Việc xây dựng chạy các bài kiểm tra JUnit đối với trình giả lập đang chạy.

Tác vụ thứ tư được cấu hình là tác vụ cuối cùng là tác vụ tập lệnh dừng trình mô phỏng.

echo "Stopping the Android emulator" 
${bamboo.ANDROID_HOME}/platform-tools/adb -s emulator-5554 emu kill 
Các vấn đề liên quan