Apa itu repositori artefak?

Jawaban:

32

Selama pengembangan Anda menghasilkan sejumlah artefak yang cukup banyak. Ini mungkin termasuk:

  • Kode sumber
  • Aplikasi yang dikompilasi
  • Paket yang bisa digunakan
  • Dokumentasi

dan berpotensi orang lain juga

Meskipun Anda dapat menggunakan sistem kontrol sumber untuk menyimpan semuanya, biasanya tidak efisien secara besar-besaran, karena sistem kontrol sumber biasanya dirancang untuk menangani file berbasis teks, dan bukan file biner. Anda mungkin dapat menggunakannya sebagai mekanisme penyimpanan sederhana, jika sebagian besar rilis Anda berbasis teks, dan Anda tidak harus menyimpan banyak data biner.

Repositori artifact dirancang untuk menyimpan semua jenis file, termasuk yang biner. Ini termasuk apa saja dari kode sumber zip up, untuk membangun hasil, untuk hal-hal seperti gambar buruh pelabuhan juga. Juga, mereka biasanya tidak hanya menyimpan artefak ini tetapi juga membantu mengelolanya menggunakan berbagai fungsi tambahan, misalnya:

  • Dukungan pembuatan versi: menyimpan beberapa metadata dengan benar, seperti ketika setiap artefak dibangun, berapa nomor versinya, menyimpan hash mereka, dll.
  • Retensi: pastikan Anda hanya menyimpan artefak penting, dan secara otomatis menghapus yang hanya foto / tidak diperlukan lagi, dll. Berdasarkan berbagai kriteria yang dapat Anda atur
  • Kontrol akses: mengatur siapa yang dapat menerbitkan dan siapa yang dapat mengunduh berbagai artefak
  • Promosi: kemampuan untuk mempromosikan artefak. Misalnya Anda dapat memiliki artefak snapshot dengan periode retensi pendek pada server di dekat coders Anda, dan repositori terpisah di dekat server langsung, di mana hanya artefak yang telah dianggap dapat digunakan yang muncul. Ini juga termasuk dukungan untuk berbagai saluran versi, dan memindahkan artefak di antara mereka (seperti mempromosikan versi tertentu dari beta ke stabil).
  • Bertindak sebagai repositori asli untuk artefak. Berarti Anda dapat menggunakannya sebagai repositori utama untuk pakar, rubygem, buruh pelabuhan, dll. Ini juga dapat mencakup caching artefak dari repositori resmi juga.
SztupY
sumber
Mungkin patut ditambahkan kemampuan 'saluran' di atas dukungan Versi, memiliki kemampuan untuk memiliki beberapa mesin yang menargetkan rilis terbaru di saluran "kembangkan" dan dorong mesin yang menargetkan versi tertentu di saluran "stabil".
Tensibai
@ Pierre.Vriens menambahkan beberapa komentar kecil, tetapi mungkin itu dapat dialamatkan dalam Pertanyaan yang terpisah juga
SztupY
merci, tapi untuk berjaga-jaga, inilah kesempatan Anda untuk lebih jauh menanggapi komentar tambahan saya ...
Pierre.Vriens
Apakah masuk akal untuk juga melacak file konfigurasi atau perlengkapan dalam repositori semacam ini?
tutuca
7

Ada manajer repositori dan manajer repositori paket Universal (UPM).

UPM dapat menyimpan semua artefak buatan Anda untuk Jenkins, teamcity, dll. Dan umumnya dapat juga bertindak sebagai gudang penyimpanan untuk berbagai jenis artefak biner Maven, npm, NuGet, dan lainnya.

Ini akan menjadi alat seperti Jfrog Artifactory , Inedo ProGet , dan Sonatype Nexus .

Perbandingan yang lumayan ada di sini: https://binary-repositories-comparison.github.io/

Karl Harnagy
sumber