Solusi terbaik adalah dengan menggunakan sistem CI Anda secara eksklusif untuk semua versi signifikan organisasi (rilis, rilis kandidat dll ...).
Ini secara sistematis mengikat binari yang dirilis ke konten repositori tanpa harus benar-benar menyimpan binari dalam repositori.
Misalnya, jika Anda menggunakan SVN, gunakan skema organisasi cabang-utama; lakukan semua pengembangan sehari-hari di / trunk, dan buat / tag untuk setiap rilis setelah siap.
Konfigurasikan sistem CI Anda untuk membangun dari tag maupun dari trunk, dan minta untuk menulis output ke direktori jaringan yang strukturnya mencerminkan struktur tingkat atas dari repo:
- / builds / trunk / [rev] [date] [build_id] /
- / builds / tag / release_0_1_3beta4 / [rev] [date] [build_id] /
Sistem build perlu memperlakukan direktori / builds / trunk / seperti buffer bundar, menyimpan n build terakhir, menghapus build lama saat berjalan.
Direktori / builds / tags / , di sisi lain, adalah toko permanen. Artefak buatan sendiri disimpan di direktori dengan nama yang dihasilkan sesuai dengan skema berikut:
di mana [rev] adalah revisi ID SVN, [tanggal] adalah tanggal dalam format YYYYMMDD, dan [build_id] adalah penghitung unik 3 digit, bertambah dari bangunan pertama dan seterusnya, membuat setiap direktori bangunan menjadi unik.
Proses yang dirinci di atas memberi Anda manfaat berikut:
Bangun artefak terikat secara sistematis ke sumber yang dihasilkannya, sehingga Anda dapat menemukan sumber untuk artefak bangunan tertentu dengan sangat mudah, (dan sebaliknya).
Ini membentuk dasar untuk otomatisasi rilis lebih lanjut. Misalnya, pembuatan dokumen rilis otomatis dll ...