Menggunakan Jenkins 1.501 dan Jenkins Git plugin 1.1.26
Saya punya 3 git repo berbeda masing-masing dengan beberapa proyek.
Sekarang saya perlu checkout semua proyek dari repo 3 git ke ruang kerja yang sama pada seorang budak Jenkins. Saya telah mendefinisikan setiap repo git di: Source code Management: Multiple SCMs . Tetapi setiap kali repo diperiksa repo sebelumnya (dan proyek terkait) dihapus.
Saya telah membaca ini:
http://jenkins.361315.n4.nabble.com/multiple-git-repos-in-one-job-td4633300.html
tapi itu tidak terlalu membantu. Saya telah mencoba untuk menentukan folder yang sama di bawah Sub direktori lokal untuk repo (opsional) untuk semua repo tetapi memberikan hasil yang sama.
Jika ini tidak mungkin menggunakan Jenkins, saya kira beberapa langkah / skrip pra-bangun dapat digunakan untuk memindahkan proyek ke lokasi yang tepat. Ini bukan opsi untuk memodifikasi konfigurasi pembangunan proyek.
Dengan Plugin Multiple SCMs:
buat entri repositori yang berbeda untuk setiap repositori yang Anda butuhkan untuk checkout (proyek utama atau proyek ketergantungan).
untuk setiap proyek, dalam menu "lanjutan" (menu "lanjutan" kedua, ada dua tombol berlabel "lanjutan" untuk setiap repositori), cari kolom teks "Subdirektori lokal untuk repo (opsional)". Anda dapat menentukan di sana subdirektori dalam direktori "ruang kerja" tempat Anda ingin menyalin proyek. Anda dapat memetakan sistem file komputer pengembangan saya.
"Menu lanjutan kedua" tidak ada lagi, sebaliknya yang perlu dilakukan adalah menggunakan tombol "Tambah" (pada bagian "Perilaku Tambahan"), dan pilih "Periksa ke sub-direktori"
Semoga itu bisa membantu.
sumber
Karena Multiple SCMs Plugin sudah tidak digunakan lagi.
Dengan Jenkins Pipeline memungkinkan untuk checkout beberapa repositori git dan setelah membangunnya menggunakan gradle
Anda mungkin ingin mempertimbangkan untuk menggunakan submit git alih-alih pipa kustom seperti ini.
sumber
dir
blok kunci, saya tidak tahu mengapa saya hanya melihat repo terbaru-kloning-in ruang kerja pekerjaan saya.23 changes from repo XXX, 3 changes from repo YYY
atau sesuatu yang lebih kompak di sepanjang garis itu.Saya menggunakan Plugin Multiple SCMs dalam hubungannya dengan Plugin Git berhasil dengan Jenkins.
sumber
Bergantung pada hubungan repositori, pendekatan lain adalah menambahkan repositori lain (repositori) sebagai submit git ke salah satu repositori. Subdit git menciptakan referensi ke repo lain. Repo submodule tersebut tidak dikloning kecuali Anda menentukan
--recursive
flag saat mengkloning "superproject" (istilah resmi).Inilah perintah untuk menambahkan submodule ke proyek saat ini:
git submodule add <repository URI path to clone>
Kami menggunakan Jenkins v1.645 dan git SCM akan out-of-the-box melakukan klon rekursif untuk proyek super. Voila Anda mendapatkan file proyek super dan semua file repo dependen (submodule) di direktori masing-masing di ruang kerja kerja Jenkins yang sama.
Tidak menjamin bahwa ini adalah pendekatan yang benar melainkan pendekatan.
sumber
Jenkins: Multiple SCM - usang. Plugin GIT - tidak berfungsi untuk beberapa repo.
Scripting / pipa sebagai kode - adalah cara untuk pergi.
sumber
Saya juga punya masalah ini. Saya menyelesaikannya menggunakan Trigger / call build pada proyek lain. Untuk setiap repositori saya memanggil proyek hilir menggunakan parameter.
Proyek utama:
Kemudian untuk setiap repositori saya sebut proyek hilir seperti ini:
Proyek Hilir: Linux-Tag-Checkout:
sumber
Memeriksa lebih dari satu repo pada suatu waktu di ruang kerja tunggal adalah mungkin dengan Jenkins + Git Plugin (mungkin hanya dalam versi yang lebih baru?).
Di bagian "Source-Code-Management", jangan pilih "Git", tetapi "Multiple SCMs" dan tambahkan beberapa repositori git.
Pastikan bahwa di semua kecuali satu yang Anda tambahkan sebagai "Perilaku tambahan" tindakan "Periksa ke sub-direktori" dan tentukan subdirektori individu.
sumber
Kami menggunakan git-repo untuk mengelola beberapa repositori GIT kami. Ada juga plugin Jenkins Repo yang memungkinkan untuk checkout semua atau sebagian dari repositori yang dikelola oleh git-repo ke ruang kerja pekerjaan Jenkins yang sama.
sumber