Apakah ada cara untuk menunjukkan status pembangunan Jenkins di GitHub Readme.md proyek saya?
Saya menggunakan Jenkins untuk menjalankan build integrasi berkelanjutan. Setelah setiap komit, memastikan semuanya mengkompilasi, serta menjalankan tes unit dan integrasi, sebelum akhirnya menghasilkan dokumentasi dan merilis bundel.
Masih ada risiko secara tidak sengaja melakukan sesuatu yang merusak gedung. Akan baik bagi pengguna yang mengunjungi halaman proyek GitHub untuk mengetahui master saat ini dalam keadaan itu.
Jawaban:
Oke, beginilah cara Anda mengatur Jenkins untuk mengatur status build GitHub. Ini mengasumsikan Anda sudah memiliki Jenkins dengan plugin GitHub yang dikonfigurasikan untuk melakukan build pada setiap push.
Pergi ke GitHub, masuk, pergi ke Pengaturan , Token akses pribadi , klik Hasilkan token baru .
Periksa repo: status (saya tidak yakin ini perlu, tetapi saya melakukannya, dan itu berhasil untuk saya).
Buat token, salin.
Pastikan pengguna GitHub yang akan Anda gunakan adalah kolaborator repositori (untuk repo pribadi) atau anggota tim dengan akses push dan pull (untuk repo organisasi) ke repositori yang ingin Anda buat.
Pergi ke server Jenkins Anda, masuk.
Di bawah GitHub Web Hook pilih Biarkan Jenkins mengelola URL kait otomatis , lalu tentukan nama pengguna GitHub Anda dan token OAuth yang Anda dapatkan di langkah 3.
Pastikan itu berfungsi dengan tombol Kredensial Uji . Simpan pengaturan.
Temukan pekerjaan Jenkins dan tambahkan Setel status build di GitHub, komit ke langkah post-build
Itu dia. Sekarang lakukan test build dan buka repositori GitHub untuk melihat apakah itu berhasil. Klik Cabang di halaman repositori utama untuk melihat status build.
Anda akan melihat tanda centang hijau:
sumber
Sementara itu, UI Jenkins dan GitHub telah berubah sedikit dan butuh beberapa saat untuk mengetahui cara mengkonfigurasi Jenkins sekarang dengan benar. Penjelasan di sini didasarkan pada Jenkins versi 2.121.1.
Saya juga berasumsi bahwa Anda telah mengonfigurasi Pekerjaan Jenkins Anda dipicu oleh webhook atau oleh polling. Itulah langkah-langkah yang telah saya ambil untuk membuatnya bekerja:
repo:status
Configure System
dan tambahkan Rahasia OAuth sebagai Server GitHub - gunakanSecret Text
sebagai metode otentikasi untuk meletakkan Rahasia OAuth di sana.Set GitHub commit status
sebagai tindakan Post-build . Setel Hasil Status keOne of the default messages and statuses
.Konfigurasikan Github
Konfigurasikan Jenkins
Konfigurasikan Pekerjaan Jenkins
Hasil
Anda sekarang akan melihat status untuk komit dan cabang Anda:
sumber
Manage Hooks
box disorot tetapi tidak berdetak dalam gambar di atas, apakah itu berarti itu harus unticked ketika kita menyimpan?Apa yang saya lakukan cukup sederhana:
Tambahkan Plugin Post Task yang selalu berhasil
Tambahkan Plugin Post Task yang akan membuat kegagalan jika "ditandai build as failure"
Anda juga dapat menambahkan panggilan ke yang tertunda pada awal tes
sumber
sh
dan bahkan memanfaatkan penyimpanan kredensial Jenkins denganwithCredentials
Plugin ini akan berfungsi: https://wiki.jenkins-ci.org/display/JENKINS/Embeddable+Build+Status+Plugin
Anda harus dapat menyematkan lencana seperti ini ke
README.md
file Anda :sumber
The Komit Status API memungkinkan Anda untuk melihat " Repo Status API ".
Dan sejak 26 April 2013, Anda sekarang dapat melihat status pembangunan di halaman cabang repo GitHub Anda :
Itu berarti itu adalah cara lain, dengan mengunjungi halaman proyek GitHub, untuk melihat status itu daripada hanya memiliki Jenkins.
Mulai 30 April 2013, titik akhir API untuk status komit telah diperluas untuk memungkinkan nama cabang dan tag, serta komit SHA .
sumber
curl
( developer.github.com/v3/repos/statuses/… )Ada juga plugin ini yang akan memberi Anda URL lencana yang dapat Anda poskan di README.md Anda dan terlihat seperti ini
https://wiki.jenkins-ci.org/display/JENKINS/Embeddable+Build+Status+Plugin
sumber
Jika Anda memiliki
Github
plugin yang diinstal pada AndaJenkins
, Anda dapat melakukannya diPost build actions
seperti ini:sumber
Tambahkan baris di bawah ini di README.md Anda dan ubah kedua URL sesuai dengan proyek jenkins Anda.
sumber
Sehubungan dengan mendirikan cabang yang dilindungi Jenkins dan GitHub. Saya menggunakan Jenkins 2.6, dan ini adalah langkah-langkah yang saya lakukan untuk membuatnya bekerja:
Di halaman web GitHub repositori Anda:
Di Server Jenkins: (Pastikan Anda telah menginstal Plugin Git dan GitHub)
Selain itu, pastikan akun GitHub yang digunakan Jenkins Anda adalah kolaborator untuk repositori. Saya sudah mengaturnya dengan tingkat izin menulis.
Semoga ini membantu.
sumber
Saya mengikuti petunjuk dari Alex dan itu berhasil.
Namun, untuk GitHub Enterprise Anda perlu memodifikasi URL API saat menambahkan server ke Jenkins.
Misalnya, jika perusahaan Anda creditcard.com, URL Anda adalah
https://github.creditcard.com/api/v3/
sumber
Jently memperbarui status komit Github Anda (seperti yang dijelaskan oleh @vonc di atas), sayangnya mereka belum mengimplementasikan API Status Repo
sumber
Edit:
Saya tidak lagi menggunakan pendekatan ini, silakan gunakan salah satu jawaban lain.
Pembaruan: apa yang akhirnya saya lakukan, untuk kasus khusus kami: (jawaban di atas sangat bagus - terima kasih!)
Karena server build kami tidak ada di internet, kami memiliki skrip untuk menerbitkan status build ke cabang gh-pages di github.
GitHub melakukan cache gambar, jadi kami membuat file .htaccess, yang menginstruksikan batas waktu cache singkat untuk gambar status-bangunan.
Letakkan ini di direktori dengan gambar build-status:
Ini skrip pembuatannya. Target yang menerbitkan ke gh-pages adalah '--publish.site.dry.run'
Dengan kurang dari 400 baris konfigurasi, kami memiliki:
. . dan skrip ini dapat dijalankan di dalam atau di luar Jenkins, sehingga:
Hasil:
Halaman utama proyek memiliki status build, diperbarui setelah setiap build, bersama dengan API Documents terbaru, hasil pengujian dan cakupan pengujian.
sumber