Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Continuous Integration (CI) adalah praktik pengembangan software tempat developer
sering menggabungkan perubahan kode mereka ke dalam repositori pusat, setelah itu
build dan pengujian otomatis dijalankan.
Anda dapat menyiapkan sistem CI dasar untuk mencegah perubahan baru yang akan merusak
build setelah digabungkan. Anda dapat memprogram sistem CI yang lebih canggih untuk otomatis menguji aplikasi dan memastikan aplikasi berperilaku seperti yang diharapkan di berbagai lingkungan, seperti level API, ukuran layar, dan platform.
Gambar 1. Sistem CI menjaga repositori kode tetap berfungsi dengan menjalankan pemeriksaan sebelum penggabungan.
Dokumen ini menunjukkan strategi umum yang digunakan developer untuk menyiapkan sistem CI yang efektif untuk project Android. Panduan ini bersifat umum dan berlaku untuk
sebagian besar solusi.
Contoh umum
Sistem CI standar mengikuti alur kerja atau pipeline, yang mungkin terlihat sebagai berikut:
Sistem CI mendeteksi perubahan dalam kode, biasanya saat developer membuat
permintaan pull, yang juga disebut "daftar perubahan" atau "permintaan penggabungan".
File ini menyediakan dan melakukan inisialisasi server untuk menjalankan alur kerja.
Library ini mengambil kode serta alat seperti Android SDK atau image
emulator jika diperlukan.
File ini mem-build project dengan menjalankan perintah tertentu, misalnya ./gradlew
build.
Library ini menjalankan pengujian lokal dengan menjalankan perintah tertentu, misalnya menjalankan
./gradlew test.
Alat ini mengupload artefak seperti hasil pengujian dan APK.
Gambar 2. Alur kerja CI dasar
Manfaat CI
Keuntungan CI meliputi:
Peningkatan kualitas software: CI dapat membantu meningkatkan kualitas software dengan mengidentifikasi dan memperbaiki masalah sejak awal. Hal ini dapat membantu mengurangi
jumlah bug dalam rilis software dan meningkatkan pengalaman
pengguna secara keseluruhan.
Mengurangi risiko build yang rusak: Saat mengotomatiskan proses build dengan
CI, Anda dapat menghindari build yang rusak dengan lebih baik dengan menyelesaikan masalah lebih awal
dalam proses tersebut.
Peningkatan keyakinan pada rilis: CI dapat membantu memastikan bahwa setiap rilis stabil dan siap untuk produksi. Dengan menjalankan pengujian otomatis, CI dapat mengidentifikasi potensi masalah sebelum Anda merilisnya ke publik.
Peningkatan komunikasi dan kolaborasi: Dengan menyediakan tempat terpusat bagi
developer untuk berbagi kode dan hasil pengujian, CI dapat membantu memudahkan
developer dan anggota tim lainnya bekerja sama dan melacak progres.
Peningkatan produktivitas: CI dapat membantu meningkatkan produktivitas developer dengan
mengotomatiskan tugas-tugas yang biasanya memakan waktu dan rentan error.
Bacaan lebih lanjut
Untuk mengetahui informasi selengkapnya tentang cara menggunakan continuous integration guna meningkatkan
pengembangan aplikasi Anda, baca halaman berikut:
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[null,null,["Terakhir diperbarui pada 2025-07-27 UTC."],[],[],null,["# Continuous Integration basics\n\nContinuous Integration (CI) is a software development practice where developers\nfrequently merge their code changes into a central repository, after which\nautomated builds and tests run.\n\nYou can set up a basic CI system to prevent new changes that would break the\nbuild after merging in. You can program a more advanced CI system to\nautomatically test the app and make sure it behaves as expected in different\nenvironments, such as API levels, screen sizes, and platforms.\n**Figure 1.** A CI system keeps a code repository healthy by running checks before merging.\n\nThis document demonstrates common strategies developers use to set up effective\nCI systems for Android projects. These guidelines are generic and apply to the\nmajority of solutions.\n\nTypical example\n---------------\n\nA typical CI system follows a *workflow* or *pipeline*, which might look as\nfollows:\n\n1. The CI system detects a change in the code, usually when a developer creates a pull request, also called \"change list\" or \"merge request\".\n2. It provisions and initializes a server to run the workflow.\n3. It fetches the code as well as tools such as the Android SDK or emulator images if needed.\n4. It builds the project by running a given command, for example .`/gradlew\n build`.\n5. It runs the [local tests](/training/testing/local-tests) by running a given command, for example running .`/gradlew test`.\n6. It starts emulators and runs the [instrumented tests](/training/testing/instrumented-tests).\n7. It uploads artifacts such as test results and APKs.\n\n**Figure 2.** A basic CI workflow\n\nBenefits of CI\n--------------\n\nThe advantages of CI include:\n\n- **Improved quality of software**: CI can help to improve the quality of software by identifying and fixing problems early on. This can help to reduce the number of bugs in software releases and improve the overall user experience.\n- **Reduced risk of broken builds**: When you automate your build process with CI you can better avoid broken builds by resolving issues earlier in the process.\n- **Increased confidence in releases**: CI can help to ensure that each release is stable and ready for production. By running automated tests, CI can identify any potential problems before you release them to the public.\n- **Improved communication and collaboration**: By providing a central place for developers to share code and test results, CI can help to make it easier for developers and other team members to work together and track progress.\n- **Increased productivity**: CI can help to increase developer productivity by automating tasks that would otherwise be time-consuming and error-prone.\n\nFurther reading\n---------------\n\nMore more information on how you can use constant integration to improve\ndevelopment for your app, read the following pages:\n\n- **[CI Automation](/training/testing/continuous-integration/automation)**\n\n- **[CI Features](/training/testing/continuous-integration/features)**"]]