

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Tutorial: Membuat pipeline yang membangun dan menguji aplikasi Android Anda AWS Device Farm
<a name="tutorials-codebuild-devicefarm"></a>

Anda dapat menggunakannya AWS CodePipeline untuk mengonfigurasi alur integrasi berkelanjutan di mana aplikasi Anda dibuat dan diuji setiap kali komit didorong. Tutorial ini menunjukkan cara membuat dan mengonfigurasi pipeline untuk membangun dan menguji aplikasi Android Anda dengan kode sumber di GitHub repositori. Pipeline mendeteksi kedatangan GitHub komit baru dan kemudian digunakan [CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)untuk membangun aplikasi dan [Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html) untuk mengujinya.

**penting**  
Sebagai bagian dari pembuatan pipa di konsol, ember artefak S3 akan digunakan CodePipeline untuk artefak. (Ini berbeda dari bucket yang digunakan untuk aksi sumber S3.) Jika bucket artefak S3 berada di akun yang berbeda dari akun untuk pipeline Anda, pastikan bucket artefak S3 dimiliki oleh Akun AWS yang aman dan dapat diandalkan.

**penting**  
Banyak tindakan yang Anda tambahkan ke pipeline dalam prosedur ini melibatkan AWS sumber daya yang perlu Anda buat sebelum membuat pipeline. AWS sumber daya untuk tindakan sumber Anda harus selalu dibuat di AWS Wilayah yang sama tempat Anda membuat pipeline. Misalnya, jika Anda membuat pipeline di Wilayah AS Timur (Ohio), CodeCommit repositori Anda harus berada di Wilayah AS Timur (Ohio).   
Anda dapat menambahkan tindakan lintas wilayah saat membuat pipeline. AWS sumber daya untuk tindakan lintas wilayah harus berada di AWS Wilayah yang sama di mana Anda berencana untuk menjalankan tindakan. Untuk informasi selengkapnya, lihat [Menambahkan tindakan Lintas wilayah di CodePipeline](actions-create-cross-region.md).

Anda dapat mencobanya menggunakan aplikasi Android dan definisi pengujian yang ada, atau Anda dapat menggunakan [aplikasi sampel dan definisi pengujian yang disediakan oleh Device Farm](https://github.com/aws-samples/aws-device-farm-sample-app-for-android).

**Sebelum Anda memulai**

1. Masuk ke AWS Device Farm konsol dan pilih **Buat proyek baru**.

1. Pilih proyek Anda. Di browser, salin URL proyek baru Anda. URL berisi ID proyek. 

1. Salin dan simpan ID proyek ini. Anda menggunakannya saat Anda membuat pipeline di CodePipeline.

   Berikut adalah contoh URL untuk sebuah proyek. Untuk mengekstrak ID proyek, salin nilainya setelahnya`projects/`. Dalam contoh ini, ID proyek adalah`eec4905f-98f8-40aa-9afc-4c1cfexample`.

   ```
   https://<region-URL>/devicefarm/home?region=us-west-2#/projects/eec4905f-98f8-40aa-9afc-4c1cfexample/runs
   ```

## Konfigurasikan CodePipeline untuk menggunakan pengujian Device Farm
<a name="codepipeline-configure-tests"></a>

1. 

   Tambahkan dan komit file yang dipanggil [https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html)di root kode aplikasi Anda, dan dorong ke repositori Anda. CodeBuild menggunakan file ini untuk menjalankan perintah dan mengakses artefak yang diperlukan untuk membangun aplikasi Anda.

   ```
   version: 0.2
   
   phases:
     build:
       commands:
         - chmod +x ./gradlew
         - ./gradlew assembleDebug
   artifacts:
     files:
        - './android/app/build/outputs/**/*.apk'
     discard-paths: yes
   ```

1. (Opsional) Jika Anda [menggunakan Calabash atau Appium untuk menguji aplikasi Anda](https://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types-intro.html), tambahkan file definisi pengujian ke repositori Anda. Pada langkah selanjutnya, Anda dapat mengonfigurasi Device Farm untuk menggunakan definisi untuk menjalankan rangkaian pengujian Anda. 

   Jika Anda menggunakan pengujian bawaan Device Farm, Anda dapat melewati langkah ini.

1. Untuk membuat pipeline dan menambahkan tahap sumber, lakukan hal berikut:

   1. Masuk ke Konsol Manajemen AWS dan buka CodePipeline konsol di [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

   1. Pada halaman **Selamat Datang**, halaman **Memulai**, atau halaman **Pipelines**, pilih **Buat pipeline**.

   1. Pada **Langkah 1: Pilih halaman opsi pembuatan**, di bawah **Opsi pembuatan**, pilih opsi **Build custom pipeline**. Pilih **Berikutnya**.

   1. Pada **Langkah 2: Pilih halaman pengaturan pipeline**, dalam **nama Pipeline**, masukkan nama untuk pipeline Anda.

   1. CodePipeline menyediakan pipa tipe V1 dan V2, yang berbeda dalam karakteristik dan harga. Jenis V2 adalah satu-satunya jenis yang dapat Anda pilih di konsol. Untuk informasi selengkapnya, lihat [jenis pipa](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel). Untuk informasi tentang harga CodePipeline, lihat [Harga](https://aws.amazon.com/codepipeline/pricing/).

   1. Dalam **peran Layanan**, biarkan **peran layanan baru** dipilih, dan biarkan **nama Peran** tidak berubah. Anda juga dapat memilih untuk menggunakan peran layanan yang ada, jika Anda memilikinya.
**catatan**  
Jika Anda menggunakan peran CodePipeline layanan yang dibuat sebelum Juli 2018, Anda perlu menambahkan izin untuk Device Farm. Untuk melakukannya, buka konsol IAM, temukan peran, lalu tambahkan izin berikut ke kebijakan peran. Untuk informasi selengkapnya, lihat [Menambahkan izin ke peran CodePipeline layanan](how-to-custom-role.md#how-to-update-role-new-services).  

      ```
      {
           "Effect": "Allow",
           "Action": [
              "devicefarm:ListProjects",
              "devicefarm:ListDevicePools",
              "devicefarm:GetRun",
              "devicefarm:GetUpload",
              "devicefarm:CreateUpload",
              "devicefarm:ScheduleRun"
           ],
           "Resource": "*"
      }
      ```

   1. **Biarkan pengaturan di bawah **Pengaturan lanjutan** pada defaultnya, lalu pilih Berikutnya.**

   1. Pada **Langkah 3: Tambahkan halaman tahap sumber**, di **penyedia Sumber**, pilih **GitHub (melalui GitHub Aplikasi)**.

   1. Di bawah **Koneksi**, pilih koneksi yang ada atau buat yang baru. Untuk membuat atau mengelola koneksi untuk tindakan GitHub sumber Anda, lihat[GitHub koneksi](connections-github.md).

   1. Di **Repositori**, pilih repositori sumber.

   1. Di **Branch**, pilih cabang yang ingin Anda gunakan.

   1. Biarkan default yang tersisa untuk tindakan sumber. Pilih **Berikutnya**.

1. Pada **Langkah 4: Tambahkan tahap build**, tambahkan tahap build:

   1. Di **Penyedia build**, pilih **Penyedia build lain**, lalu pilih **AWS CodeBuild**. Izinkan **Wilayah** ke default ke Wilayah alur.

   1. Pilih **Buat proyek**.

   1. Di **Nama proyek**, masukkan nama untuk proyek pembangunan ini.

   1. Di **Citra lingkungan**, pilih **Citra terkelola**. Untuk **Sistem operasi**, pilih **Ubuntu**.

   1. Untuk **Waktu aktif**, pilih **Standar**. **Untuk **Gambar**, pilih:5.0aws/codebuild/standard.**

      CodeBuild menggunakan image OS ini, yang telah menginstal Android Studio, untuk membangun aplikasi Anda.

   1. Untuk **peran Layanan**, pilih peran CodeBuild layanan yang ada atau buat yang baru.

   1. Untuk **spesifikasi Build**, pilih **Gunakan file buildspec**.

   1. Pilih **Lanjutkan ke CodePipeline**. Ini kembali ke CodePipeline konsol dan membuat CodeBuild proyek yang menggunakan `buildspec.yml` di repositori Anda untuk konfigurasi. Proyek build menggunakan peran layanan untuk mengelola Layanan AWS izin. Langkah ini mungkin memakan waktu beberapa menit.

   1. Pilih **Berikutnya**.

1. Pada **Langkah 5: Tambahkan tahap pengujian**, pilih **Lewati tahap pengujian**, lalu terima pesan peringatan dengan memilih **Lewati** lagi. 

   Pilih **Berikutnya**.

1. Pada **Langkah 6: Tambahkan halaman tahap penerapan**, pilih **Lewati tahap penerapan**, lalu terima pesan peringatan dengan memilih **Lewati** lagi. Pilih **Berikutnya**.

1. Pada **Langkah 7: Tinjau**, pilih **Buat pipeline**. Anda akan melihat diagram yang menunjukkan sumber dan tahap build.

1. Tambahkan tindakan pengujian Device Farm ke pipeline Anda:

   1. Di kanan atas, pilih **Edit**.

   1. Di bagian bawah diagram, pilih **\$1 Tambahkan tahap**. Dalam **nama Panggung**, masukkan nama, seperti**Test**.

   1. Pilih **\$1 Tambahkan grup tindakan**.

   1. Di **Nama tindakan**, masukkan nama. 

   1. Di **penyedia Action**, pilih **AWS Device Farm**. Izinkan **Wilayah** ke default ke Wilayah alur.

   1. Dalam **artefak Input**, pilih artefak input yang cocok dengan artefak keluaran dari tahap yang datang sebelum tahap pengujian, seperti. `BuildArtifact` 

      Di AWS CodePipeline konsol, Anda dapat menemukan nama artefak keluaran untuk setiap tahap dengan mengarahkan kursor ke ikon informasi di diagram pipa. Jika pipeline menguji aplikasi langsung dari tahap **Sumber**, pilih **SourceArtifact**. Jika pipeline menyertakan tahap **Build**, pilih **BuildArtifact**.

   1. Masuk **ProjectId**, masukkan ID proyek Device Farm Anda. Gunakan langkah-langkah di awal tutorial ini untuk mengambil ID proyek Anda.

   1. Masuk **DevicePoolArn**, masukkan ARN untuk kumpulan perangkat. Untuk mendapatkan kumpulan perangkat yang tersedia ARNs untuk proyek, termasuk ARN untuk Perangkat Teratas, gunakan AWS CLI untuk memasukkan perintah berikut: 

      ```
      aws devicefarm list-device-pools --arn arn:aws:devicefarm:us-west-2:account_ID:project:project_ID
      ```

   1. Masuk **AppType**, masukkan **Android**.

      Berikut ini adalah daftar nilai yang valid untuk **AppType**:
      + **iOS**
      + **Android**
      + **Web**

   1. Di **App**, masukkan jalur paket aplikasi yang dikompilasi. Jalur relatif terhadap akar artefak input untuk tahap pengujian. Biasanya, jalur ini mirip dengan`app-release.apk`.

   1. Masuk **TestType**, masukkan jenis pengujian Anda, lalu di **Uji**, masukkan jalur file definisi pengujian. Jalur relatif terhadap akar artefak input untuk pengujian Anda.

      Berikut ini adalah daftar nilai yang valid untuk **TestType**:
      + **APPIUM\$1JAVA\$1JUNIT**
      + **APPIUM\$1JAVA\$1TESTNG**
      + **APPIUM\$1NODE**
      + **APPIUM\$1RUBY**
      + **APPIUM\$1PYTHON**
      + **APPIUM\$1WEB\$1JAVA\$1JUNIT**
      + **APPIUM\$1WEB\$1JAVA\$1TESTNG**
      + **APPIUM\$1WEB\$1NODE**
      + **APPIUM\$1WEB\$1RUBY**
      + **APPIUM\$1WEB\$1PYTHON**
      + **BUILTIN\$1FUZZ**
      + **INSTRUMENTASI**
      + **XCTEST**
      + **XCTEST\$1UI**
**catatan**  
Node lingkungan khusus tidak didukung.

   1. Di bidang yang tersisa, berikan konfigurasi yang sesuai untuk pengujian dan jenis aplikasi Anda.

   1. (Opsional) Di **Advanced**, berikan informasi konfigurasi untuk uji coba Anda.

   1. Pilih **Simpan**.

   1. Di panggung yang Anda edit, pilih **Selesai**. Di AWS CodePipeline panel, pilih **Simpan**, lalu pilih **Simpan** pada pesan peringatan.

   1. Untuk mengirimkan perubahan dan memulai pembuatan pipeline, pilih **Rilis perubahan**, lalu pilih **Rilis**.