it-swarm-id.com

Jenkins tidak dapat mengkloning repositori Git melalui Git/SSH pada Windows

Saya telah berhasil mengkloning repositori Git di Jenkins melalui Git/SSH pada Windows 2008 32-bit. Ketika saya mencoba melakukan hal yang sama pada Windows 2008 64-bit, halaman Konsol Output macet di sini:

Démarré par l'utilisateur anonymous
Checkout:book / C:\Jenkins\workspace\book - [email protected]
Using strategy: Default
Last Built Revision: Revision 5d7ce4ae23c91fb201ee005e6db17bcd795ca965 (Origin/HEAD, Origin/master)
Checkout:book / C:\Jenkins\workspace\book - [email protected]
Cloning the remote Git repository
Cloning repository Origin

Ketika saya menghentikan pembangunan (setelah beberapa menit macet di sana), saya mendapatkan sisa pesan kesalahan:

ERROR: Error cloning remote repo 'Origin' : Could not clone [email protected]:zeljkofilipin/watirbook.git
ERROR: Cause: Error performing command: C:\Git\bin\git.exe clone --progress -o Origin [email protected]:zeljkofilipin/watirbook.git C:\Jenkins\workspace\book
null
Trying next repository
ERROR: Could not clone repository
FATAL: Could not clone
hudson.plugins.git.GitException: Could not clone
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.Java:1042)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.Java:968)
    at hudson.FilePath.act(FilePath.Java:785)
    at hudson.FilePath.act(FilePath.Java:767)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.Java:968)
    at hudson.model.AbstractProject.checkout(AbstractProject.Java:1193)
    at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.Java:567)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.Java:455)
    at hudson.model.Run.run(Run.Java:1404)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.Java:46)
    at hudson.model.ResourceController.execute(ResourceController.Java:88)
    at hudson.model.Executor.run(Executor.Java:230)
  • Saya dapat mengkloning repositori melalui URL read-only Git git://github.com/zeljkofilipin/watirbook.git dari Jenkins di kedua mesin
  • Saya dapat mengkloning melalui Git/SSH URL [email protected]:zeljkofilipin/watirbook.git dari baris perintah di kedua mesin
  • Saya dapat mengkloning melalui Git/SSH URL dari Jenkins pada mesin 32-bit, tetapi tidak pada mesin 64-bit.

Satu-satunya perbedaan yang dapat saya perhatikan antara kedua mesin (tidak termasuk satu adalah mesin virtual di laptop saya, dan yang lain adalah mesin nyata di Swiss) adalah yang pertama 32-bit dan yang kedua 64-bit.

Tidak yakin apakah itu terkait, tetapi mesin 32-bit memiliki lokasi yang diatur ke Kroasia, dan mesin 64-bit ke Swiss (seperti yang dapat Anda lihat dari output Git dalam bahasa Prancis).

Untuk informasi lebih lanjut silakan lihat posting blog saya: Jenkins, Windows dan Git

19
Željko Filipin

Saya telah melalui rasa sakit ini baru-baru ini. Terutama frustasi adalah kurangnya log kesalahan dalam skenario ini: mungkin karena MSysgit meminta pengguna pada konsol ketika mencoba untuk memulihkan - yang tidak melewati konsol Jenkins.

Berdasarkan pengalaman saya di sini adalah beberapa elemen kunci yang harus diperhatikan:

  1. campuran kedua Msysgit dan Cygwin diinstal: MSysgit bekerja lebih baik untuk saya - tetapi saya menganggap Anda menggunakan itu juga
  2. beberapa orang lebih beruntung dengan <MSYSGIT_ROOT>\cmd\git.cmd daripada <MSYSGIT_ROOT>\bin\git.exe
  3. memastikan slave Anda berjalan sebagai pengguna yang sama (yang bukan default pada instalasi berbasis layanan) .. - oh saya melihat Anda juga mendapatkannya
  4. pengaturan variabel HOME untuk windows slave explicity
  5. pada dasarnya pastikan kunci .ssh yang sama tercapai ketika di bawah Jenkins.
  6. untuk debugging, saya merasa berguna untuk membuat pekerjaan tes tanpa SCM, tetapi jalankan git clone dalam langkah build "Execute Shell/batch". Itu akan mengungkapkan sedikit lebih banyak info. BTW, Anda dapat melakukan env pada langkah yang sama dan mungkin ls %HOME%/.ssh

Saya pikir di atas adalah apa yang memberi saya bekerja seorang Jenkins Windows 7 64bit budak dengan dukungan git - meskipun saya pikir ini lebih berkaitan dengan beberapa detail konfigurasi baik daripada dengan 64 vs 32 bit. Semoga beruntung!

26
inger

Di versi terbaru git, harus menggunakan% GIT_HOME%/cmd/git.exe, daripada% GIT_HOME%/bin/git.exe dan mencari tahu direktori home pengguna yang menjalankan layanan jenkins.

6
Shanmu

Masalah lain yang saya hadapi adalah, ssh.exe tidak melihat folder %userprofile%/.ssh untuk file kunci. Sebaliknya itu mencari ke folder C:\Program Files (x86)\Git\.ssh yang kosong dan yang menyebabkan hang karena otentikasi ssh Prompt pada mesin tempat git repo berada.

Kami baru saja menyalin file kunci di bawah %userprofile%/.ssh ke C:\Program Files (x86)\Git\.ssh dan masalahnya teratasi.

3
mehmet6parmak

Catatan dari pelajaran yang sulit dipelajari . Saya punya masalah mendapatkan ssh untuk bekerja menjalankan Jenkins sebagai akun pengguna bernama ssh + git.

Inilah yang harus saya lakukan untuk menyelesaikan masalah:

  1. Hasilkan kunci menggunakan ssh-keygen (perhatikan di mana mereka berada)
  2. Setel "HOME" ke lokasi ini

Saya mencoba dengan puttygen dan GET_SSH = plink bahwa semua gagal sangat buruk tetapi tidak ada kesalahan yang jelas.

2
dkjkj

Karena Windows Jenkins saya adalah slave, saya harus mengkonfigurasi simpul itu untuk menemukan git di cmd, bukan bin seperti yang dijelaskan oleh inger. Untuk melakukan ini, pergi ke Kelola Jenkins, Kelola Node, klik pada node yang sesuai, klik pada Konfigurasi dan kemudian pergi ke Lokasi Alat. Temukan git di drop-down dan kemudian tentukan path ke git.exe (termasuk git.exe), seperti C:\Program Files\Git\cmd\git.exe.

Saya mengkonfirmasi bahwa cmd/git.exe bekerja secara berbeda dari bin/git.exe dari kedua command-line dan dengan pekerjaan sementara jenkins menggunakan perintah git (bukan repo scm).

0
Cathy

https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Plugin

Cukup tambahkan login pengguna yang diaktifkan ssh ke Jenkins dan itu akan berfungsi dengan lancar.

0
Anand Bansal

Ketika Anda harus menggunakan opsi konfigurasi apa pun dari file konfigurasi per pengguna misalnya. ~/.ssh/config Anda dapat meletakkannya di C:\Program Files (x86)\Git\etc\ssh\ssh_config, file kunci dapat dimasukkan ke dalam C:\Program Files (x86)\Git.ssh 

0
user33994

Jika akun Anda dilampirkan ke domain. Maka Anda perlu memastikan pengguna yang menjalankan Slots Jenkins. Untuk tujuan tersebut buka Pengaturan -> Properti dari "Jenkins Slave" -> Log On . dan pilih yang diperlukanpenggunadaridomainuntuk eksekusi yang benar.

0
AVG