Untuk memberikan contoh praktis dari upaya menciptakan bangunan yang benar-benar dapat diulang, pertimbangkan hal berikut -
Pipeline build yang dimulai dengan repositori git yang tidak ada pengguna yang bisa menulis ulang histori atau menghapus cabang yang tidak dihapus.
Langkah "build" pertama setelah memeriksa kode sumber adalah memutar wadah yang berisi semua dependensi waktu build.
Output dari menjalankan wadah waktu membangun adalah wadah yang berisi biner dikompilasi.
Lebih penting untuk pengulangan pembuatan tag berikut ditambahkan ke wadah akhir:
- Hash yang tepat dari kode sumber di repositori asli dan url dari git repo dan snapshot tar bola dari kode yang diunggah ke repositori artifact.
- Versi persisnya dari wadah build yang digunakan untuk menjalankan build.
- Versi persis dari gambar dasar asli tempat biner dimasukkan.
- Nilai semua variabel build-time yang digunakan untuk membuat biner.
- Versi buruh pelabuhan tempat ketiga kontainer dibangun dengan serta versi mana mereka berjalan di bawah ketika mereka membangun.
Dengan menambahkan semua data meta ini, kami dapat memastikan bahwa pada titik mana pun di masa mendatang, kami dapat menarik set dependensi build yang tepat (melalui kontainer build), mengkompilasi biner dengan serangkaian langkah-langkah yang diketahui (diabadikan pada kontainer build) ) dan kemas ini ke dalam gambar dasar lain yang diketahui dengan semua dependensi run-time (menggunakan tag gambar dasar) dan ini semua dapat didasarkan pada versi kode sumber yang benar dan tepat berdasarkan tag pada wadah.
Secara teoritis ini seharusnya memberi kita kemampuan untuk mereproduksi versi build dengan tepat.
Pentingnya hal ini adalah memungkinkan kita untuk melihat apa yang berjalan dalam produksi dan, bahkan jika semuanya telah mengalami kemajuan versi secara signifikan, kembali dan tarik keluar versi kode, gambar dasar dan wadah penampung yang awalnya digunakan sehingga kita dapat, misalnya , terapkan perbaikan terbaru ke versi itu sebelum membangun kembali persis seperti sebelumnya sehingga kita dapat memindahkan kembali mengetahui bahwa itu persis artefak yang sama dengan satu-satunya delta menjadi perbaikan panas.