JavaRush /Java Blog /Random-ID /Integrasi Berkelanjutan
Nikita Koliadin
Level 40
Днепр

Integrasi Berkelanjutan

Dipublikasikan di grup Random-ID
Salam, rekan-rekan! Bosan memaksa komputer Anda untuk terus-menerus membuat proyek? Maka artikel ini cocok untuk Anda! Integrasi Berkelanjutan - 1Pada artikel kali ini saya akan mencoba menyajikan secara singkat dan jelas materi mengenai Continuous Integration (selanjutnya disebut CI), saya akan menjawab pertanyaan sederhana seperti: “Apa itu?”, “Mengapa?” dan mengapa?" dan saya akan memberikan contoh proyek uji. Artikel ini ditujukan untuk pengguna berpengalaman yang setidaknya akrab dengan Build System: Maven , mengetahui cara menggunakan Git , dan mengetahui cara mendorong proyek ke GitHub ;

“Apa itu Integrasi Berkelanjutan?”

Mari kita lihat apa yang dikatakan Wiki kepada kita tentang pertanyaan ini : Integrasi berkelanjutan (CI, Bahasa Inggris Continuous Integration) adalah praktik pengembangan perangkat lunak yang terdiri dari penggabungan salinan kerja ke dalam cabang pengembangan utama umum beberapa kali sehari dan sering melakukan pembangunan otomatis proyek untuk awal deteksi potensi cacat dan solusi untuk masalah integrasi. Menakutkan, bukan? Mari kita coba jelaskan istilah ini dengan kata-kata sederhana: Integrasi berkelanjutan adalah sistem untuk membangun dan menguji perangkat lunak secara otomatis dengan konfigurasi tertentu pada mesin tertentu untuk mendeteksi bug dan ketidakcocokan. Oke, tidak masalah, kami sudah menemukan jawabannya, tetapi pertanyaan logis berikut muncul:

Mengapa kita membutuhkan CI?

Bayangkan saja Anda sedang menulis proyek besar, dan ada kebutuhan untuk menambah/mengubah fungsionalitas. Anda berhasil menulisnya, menulis tes, meluncurkannya, dan semuanya tampak baik-baik saja, tetapi tidak. Ada situasi ketika perubahan dalam satu fungsi mempengaruhi fungsi lainnya, fungsi lain pada fungsi ketiga, dan seterusnya, hingga bug muncul di suatu tempat dan terjadi kesalahan. Ya, Anda dapat mengatakan bahwa kemungkinan besar ini adalah proyek yang dirancang dengan buruk, dan Anda mungkin benar, tetapi bagaimana jika tidak, dan koneksi ini seharusnya ada? Dan bagaimana jika Anda menulis dan membuat proyek lebih dari sekali, dan hal ini sering terjadi? Anda menjalankan pengujian pada fungsionalitas yang baru Anda tulis, dan hasilnya memberikan hasil positif. Anda membuat komitmen cepat, lalu pergi ke suatu tempat dan sudah memikirkan bagaimana Anda akan merokok cerutu di rumah sambil minum wiski mahal, tetapi tidak. Sayangnya, kolega atau atasan Anda, tidak peduli siapa, mengatakan bahwa karena komitmen Anda, seluruh bangunan menjadi rusak. Anda berkata dengan bingung bahwa Anda adalah seorang programmer, Anda telah menguji segalanya. Namun seringkali tidak ada waktu untuk terus-menerus menguji keseluruhan proyek, dan Anda hanya menguji bagian kode yang Anda buat perubahannya, dan bukan keseluruhan rakitan secara keseluruhan. Di sinilah CI membantu kami. Dengan setiap dorongan ke sumber daya apa pun, CI akan membangun proyek Anda dari awal, menjalankan SEMUA pengujian, dan hanya jika semua pengujian lulus dan proyek dibangun, pembangunan akan menerima status kelulusan . Jika tidak, Anda akan mempunyai kesempatan untuk kembali lagi dan melihat apa yang salah. Jadi, inilah saatnya mengajukan pertanyaan “Mengapa demikian dan bukan sebaliknya?” dan lihat implementasi perangkat lunaknya. Contoh Seperti yang sudah saya katakan, artikel ini ditujukan bagi mereka yang sudah familiar dengan Maven dan Git. Oleh karena itu, saya berharap Anda mengetahui bagaimana dan apa yang saya lakukan selain menyiapkan CI, dll.
  1. Pertama, mari buat proyek pengujian Maven sederhana dan buat kelas di dalamnya yang mencetak "Hello World!" dan melakukan beberapa operasi sederhana, dan mari kita menulis tes paling sederhana untuk kelas ini.

    Hasilnya, kita akan memiliki struktur proyek primitif:

    Integrasi Berkelanjutan - 2

    Semua sumber akan ada di GitHub saya. Tidak masalah apa yang Anda tulis di Utama dan tes apa yang akan dilakukan.

  2. Kami mendorong proyek kami ke GitHub.

  3. Sekarang tiba bagian menyenangkan. Dari CI, saya memilih Travis CI karena ketersediaan dan keandalannya. Travis menggunakan GitHub untuk menghosting kode sumbernya.

    Jadi, buka situs web Travis CI dan masuk melalui GitHub. Di profil kami menghubungkan proyek kami:

    Integrasi Berkelanjutan - 3

    Semuanya siap untuk dirakit dengan setiap dorongan, tetapi pertanyaannya adalah BAGAIMANA cara merakitnya?

  4. Kami kembali ke IDE tercinta kami dan membuat file .travis.yml

    File ini bertanggung jawab atas konfigurasi build Travis. Mari kita lihat pengaturan paling populer:

    • Anda perlu menentukan bahasa yang digunakan untuk mengimplementasikan proyek;
    • Tentukan jalur ke direktori untuk mempercepat pembangunan;
    • Tentukan metode pemberitahuan tentang perakitan yang berhasil atau tidak berhasil.

    Seperti inilah tampilan konfigurasi Travis pada umumnya:

    # https://docs.travis-ci.com/user/languages/java/
    language: java
    jdk: oraclejdk9
    
    # Improve Build Speed https://dzone.com/articles/travis-ci-tutorial-java-projects
    cache:
      directories:
      - $HOME/.m2
    
    # Notifications https://docs.travis-ci.com/user/notifications/
    notifications:
      email:
        recipients:
          - qThegamEp@gmail.com
        on_success: always # default: change
        on_failure: always # default: always

    Saya telah menambahkan komentar, dengan tautan, untuk kejelasan.

  5. Kami mendorong lagi ke GitHub dan membuka situs web Travis , memilih proyek dan memantau pembangunannya. Hasilnya, kami menerima pemberitahuan tentang pembangunan yang berhasil:

    Integrasi Berkelanjutan - 4 Integrasi Berkelanjutan - 5

    Juga di situs tersebut kita dapat melihat lencana dengan keberhasilan perakitan proyek kita, yang dapat kita masukkan ke dalam README.md kita:

    Integrasi Berkelanjutan - 6
Tautan yang berguna: Mungkin ada kesalahan dan kekurangan dalam teks. Terima kasih atas perhatian Anda!
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION