Saya menggunakan Jenkins untuk memicu dan mengelola serangkaian pekerjaan impor. Saya ingin meletakkan skrip impor saya di Github, dan ketika Jenkins membangun pekerjaan, itu harus (a) menarik skrip yang dikendalikan versi dari Github dan (b) menjalankan skrip.
Masalah yang saya hadapi adalah bahwa saya tidak tahu bagaimana merujuk nama skrip untuk dijalankan dalam pekerjaan. Saya berasumsi bahwa kode sumber ditarik ke direktori ruang kerja. Apakah anggapan itu benar? (Kalau saja ada dokumentasi!)
Inilah yang telah saya lakukan sejauh ini:
- Menginstal Jenkins (jelas) di Windows Server saya (tidak, saya tidak punya pilihan tentang itu)
- Membuat repositori di akun github saya dan memasukkan kode saya di dalamnya
- Ini publik di https://github.com/mcholl/SARS-Import/
- Anda akan melihat saya memiliki dua skrip, roottest.py dan omniture-video \ test.py. Kode yang ada dipatenkan oleh Apple, saya yakin :)
- Idenya adalah saya ingin menjalankan roottest.py
- Menginstal plugin Github
- Menciptakan pekerjaan sebagai berikut:
- Nama Proyek = "Menguji Integrasi Github"
- Proyek GitHub: https://github.com/mcholl/SARS-Import.git/
- Tambahkan perintah batch Windows: python roottest.py
- Menjalankan pekerjaan secara manual
Apa yang saya dapatkan, bagaimanapun, adalah pesan kesalahan bahwa file tidak dapat ditemukan. Ini aneh, karena saya menganggap alur kerja akan "tarik salinan sumber lokal ke ... (Pekerjaan) / workspace / direktori, kemudian jalankan perintah batch dalam konteks direktori workspace.
Inilah output konsol lengkap:
Dimulai oleh pengguna anonim. Bangunan di ruang kerja C: \ Program Files (x86) \ Jenkins \ jobs \ Menguji Integrasi Github \ workspace [ruang kerja] $ cmd / c panggilan C: \ Windows \ TEMP \ hudson1966342425043540895.bat
C: \ Program Files (x86) \ Jenkins \ jobs \ Testing Integrasi Github \ workspace> python roottest.py python: tidak dapat membuka file 'roottest.py': [Errno 2] Tidak ada file atau direktori seperti itu
C: \ Program Files (x86) \ Jenkins \ jobs \ Testing Github Integration \ workspace> exit 2 Build step 'Jalankan perintah batch Windows' ditandai build gagal. Selesai: FAILURE
Jelas saya berharap untuk hanya melihat hasil pernyataan cetak saya di konsol.
Apa yang saya mengacau? Dan mengapa skrip saya belum ada di sana?
Jawaban:
Untuk build saya (di host Linux), saya melakukan sesuatu seperti ini (sebagai langkah build di Jenkins) untuk mengeksekusi script build dari ruang kerja yang baru saja diperiksa:
Jalankan perintah shell:
Saya kira itu akan bekerja serupa pada Windows, kecuali tentu saja Anda akan menggunakan \ daripada / dan Anda menggunakan python daripada sh untuk menjalankan skrip Anda.
sumber
Anda dapat menulis dua baris dalam versi Anda:
sumber
Anda dapat menyimpan beberapa skrip di Git, mis. Test.sh:
Kemudian di input "Execute shell", masukkan impor skrip itu dan panggil "_test_func":
Hasil:
sumber