"Apakah itu Integrasi Berterusan?"
Mari lihat apa yang Wiki beritahu kita tentang soalan ini : Penyepaduan berterusan (CI, English Continuous Integration) ialah amalan pembangunan perisian yang terdiri daripada menggabungkan salinan kerja ke dalam cawangan pembangunan utama biasa beberapa kali sehari dan melaksanakan binaan automatik yang kerap bagi projek untuk awal. pengesanan potensi kecacatan dan penyelesaian kepada masalah integrasi. Menakutkan, bukan? Mari cuba terangkan istilah ini dalam perkataan mudah: Penyepaduan berterusan ialah sistem untuk membina dan ujian automatik perisian dengan konfigurasi tertentu pada mesin tertentu untuk mengesan pepijat dan ketidakserasian. Okey, tidak ada masalah, kami telah memikirkannya, tetapi soalan logik berikut timbul:Mengapa kita memerlukan CI?
Cuba bayangkan anda sedang menulis projek yang besar, dan terdapat keperluan untuk menambah/menukar fungsi. Anda berjaya menulisnya, menulis ujian, melancarkannya, dan semuanya kelihatan baik-baik saja, tetapi tidak. Terdapat situasi apabila perubahan dalam satu fungsi mempengaruhi yang lain, satu lagi pada yang ketiga, dan seterusnya, sehingga pepijat tergelincir di suatu tempat dan ralat berlaku. Ya, anda boleh katakan ini kemungkinan besar projek yang direka dengan buruk, dan anda mungkin betul, tetapi bagaimana jika tidak, dan sambungan ini benar-benar sepatutnya ada? Dan bagaimana jika anda menulis dan mencipta projek lebih daripada sekali, yang selalunya berlaku? Anda menjalankan ujian pada kefungsian anda yang baru ditulis, dan mereka memberikan keputusan yang positif. Anda membuat komitmen yang cepat, kemudian menolak ke suatu tempat dan sudah memikirkan bagaimana anda akan menghisap cerut di rumah sambil minum wiski mahal, tetapi tidak. Malangnya, rakan sekerja atau bos anda, tidak kira siapa, mengatakan bahawa kerana komitmen anda, keseluruhan binaan ranap. Anda berkata dengan kebingungan bahawa anda seorang pengaturcara, anda telah menguji segala-galanya. Tetapi selalunya tiada masa untuk sentiasa menguji keseluruhan projek, dan anda hanya menguji sekeping kod anda yang anda buat perubahan, dan bukan keseluruhan pemasangan secara keseluruhan. Di sinilah CI datang untuk membantu kami. Dengan setiap menolak ke mana-mana sumber, CI akan membina projek anda dari awal, menjalankan SEMUA ujian dan hanya jika semua ujian lulus dan projek dibina, binaan akan menerima status lulus . Jika tidak, anda akan mempunyai peluang untuk membuat kemunculan semula dan melihat apa yang salah. Jadi, sudah tiba masanya untuk bertanya soalan "Mengapa ini dan tidak sebaliknya?" dan lihat pada pelaksanaan perisian. Contoh Seperti yang telah saya katakan, artikel itu ditujukan untuk mereka yang biasa dengan Maven dan Git. Oleh itu, saya berharap anda tahu cara dan perkara yang saya lakukan selain menyediakan CI, dsb.-
Mula-mula, mari buat projek ujian Maven yang mudah dan buat kelas di dalamnya yang mencetak "Hello World!" dan melakukan beberapa operasi mudah, dan mari tulis ujian paling mudah untuk kelas ini.
Akibatnya, kita harus mempunyai struktur projek primitif:
Semua sumber akan berada di GitHub saya. Tidak kira apa yang anda tulis dalam Utama anda dan apa ujian yang akan ada.
-
Kami menolak projek kami ke GitHub.
-
Sekarang datang bahagian yang menyeronokkan. Daripada CI, saya memilih Travis CI kerana ketersediaan dan kebolehpercayaannya. Travis menggunakan GitHub untuk mengehoskan kod sumbernya.
Jadi, pergi ke laman web Travis CI dan log masuk melalui GitHub. Dalam profil kami menyambungkan projek kami:
Segala-galanya sedia untuk dipasang dengan setiap tolak, tetapi persoalannya ialah BAGAIMANA untuk memasang?
-
Kami kembali ke IDEA tercinta dan mencipta fail .travis.yml
Fail ini bertanggungjawab untuk konfigurasi binaan Travis. Mari lihat tetapan yang paling popular:
- Anda perlu menentukan bahasa di mana projek itu dilaksanakan;
- Tentukan laluan ke direktori untuk menjadikan binaan lebih pantas;
- Nyatakan kaedah pemberitahuan tentang pemasangan yang berjaya atau tidak berjaya.
Inilah yang sepatutnya kelihatan seperti konfigurasi Travis biasa:
# 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 menambah ulasan, dengan pautan, untuk kejelasan.
-
Kami menolak sekali lagi ke GitHub dan membuka tapak web Travis , pilih projek dan pantau binaan. Akibatnya, kami menerima pemberitahuan tentang binaan yang berjaya:
Juga di tapak kami boleh melihat lencana dengan pemasangan projek kami yang berjaya, yang boleh kami masukkan ke dalam README.md kami:
-
Projek ujian saya yang boleh anda lihat / muat turun jika anda tidak memahami sesuatu;
-
Sebenarnya laman web Travis CI itu sendiri ;
-
Tutorial di laman web rasmi tentang menyediakan dan menggunakan Travis CI;
-
Video yang bagus ;
- Satu lagi tutorial ;
GO TO FULL VERSION