Pada April 2022, repositori ini tidak lagi digunakan atau dipelihara.
Ini adalah Janky, server integrasi kontinu yang dibangun di atas Jenkins, dikendalikan oleh Hubot, dan dirancang untuk GitHub.
Dibangun di atas Jenkins. Daya, sejumlah besar plugin dan komunitas besar dari server CI populer semuanya dibungkus dalam pengalaman hebat.
Dikendalikan oleh hubot. Operasi sehari -hari diekspos sebagai perintah hubot sederhana yang dapat digunakan seluruh tim.
Dirancang untuk GitHub. Janky membuat kait web yang sesuai untuk Anda dan aplikasi web membatasi akses ke anggota organisasi GitHub Anda.
Mulailah dengan menyiapkan pekerjaan Jenkins baru dan kait web github untuk repositori: [ORG]/[REPO]
hubot ci setup github/janky
Perintah setup
dapat dengan aman dijalankan berulang kali. Itu tidak akan melakukan apa pun kecuali perlu. Dibutuhkan argumen name
opsional: [ORG]/[REPO] [NAME]
hubot ci setup github/janky janky-ruby1.9.2
Ini juga mengambil argumen template
opsional: [ORG]/[REPO] [NAME] [TEMPLATE]
hubot ci setup github/janky janky-ruby1.9.2 ruby-build
Semua cabang dibangun secara otomatis dengan dorong. Nonaktifkan Auto Build dengan:
hubot ci toggle [REPO]
Catatan : Jika name
diatur, Anda harus menggunakannya.
hubot ci toggle [NAME]
Jalankan perintah lagi untuk mengaktifkannya kembali. Memaksa build dari cabang master:
hubot ci build [REPO]
Catatan : Jika name
diatur, Anda harus menggunakannya.
hubot ci build [NAME]
Dari cabang tertentu: [REPO]/[BRANCH]
hubot ci build janky/libgit2
Bangunan yang berbeda tidak relevan dengan ruang obrolan yang sama dan jadi Janky memungkinkan Anda memilih ke mana pemberitahuan dikirim. Pertama dapatkan daftar kamar yang tersedia:
hubot ci rooms
Kemudian pilih satu:
hubot ci set room janky The Serious Room
Dapatkan status build:
hubot ci status janky
Cabang spesifik: [REPO]/[BRANCH]
hubot ci status janky/libgit2
Semua bangunan:
hubot ci status
Akhirnya, dapatkan referensi cepat dari perintah yang tersedia dengan:
hubot ci?
Janky membutuhkan akses ke server Jenkins. Versi 1.580 direkomendasikan. Lihat dokumentasi Jenkins untuk instruksi instalasi dan instal Plugin Pemberitahuan versi 1.4.
Ingatlah untuk mengatur URL Jenkins di http://your-jenkins-server.com/configure
. Janky masih akan memicu build tetapi tidak akan memperbarui status build tanpa set ini.
Janky dirancang untuk dikerahkan ke Heroku.
Ambil semua file yang diperlukan dari intinya:
$ git clone git://gist.github.com/1497335 janky
Kemudian dorong ke aplikasi Heroku baru:
$ cd janky
$ heroku create --stack cedar
$ bundle install
$ git add Gemfile.lock
$ git commit Gemfile.lock -m "lock bundle"
$ git push heroku master
Setelah mengkonfigurasi aplikasi (lihat di bawah), buat database:
$ heroku run rake db:migrate
Catatan: Ruby Versi 2.0.0+ Diperlukan untuk menjalankan Janky.
Kami sangat merekomendasikan mencadangkan database janky Anda sebelum meningkatkan.
Proses umum adalah untuk meningkatkan permata, dan kemudian menjalankan migrasi. Inilah cara Anda melakukannya pada kotak lokal yang Anda akses (proses ini akan berbeda untuk Heroku):
cd [PATH-TO-JANKY]
gem update janky
rake db:migrate
Janky dikonfigurasi menggunakan variabel lingkungan. Gunakan perintah heroku config
:
$ heroku config:add VARIABLE=value
Pengaturan yang diperlukan:
JANKY_BASE_URL
: URL aplikasi dengan tebasan trailing. Contoh: http://mf-doom-42.herokuapp.com/
.JANKY_BUILDER_DEFAULT
: URL server Jenkins dengan tebasan trailing. Contoh: http://jenkins.example.com/
. Untuk Auth Dasar, sertakan kredensial di URL: http://user:[email protected]/
. Menggunakan Github Oauth dengan Jenkins tidak didukung oleh Janky.JANKY_CONFIG_DIR
: Direktori di mana templat konfigurasi disimpan. Biasanya diatur ke /app/config
di Heroku.JANKY_HUBOT_USER
: Login digunakan untuk melindungi API Hubot.JANKY_HUBOT_PASSWORD
: Kata sandi untuk API Hubot.JANKY_GITHUB_USER
: Login pengguna GitHub yang digunakan untuk mengakses API. Membutuhkan hak administratif untuk mengatur kait layanan.JANKY_GITHUB_PASSWORD
: Kata sandi untuk pengguna GitHub.JANKY_GITHUB_HOOK_SECRET
: Rahasia digunakan untuk menandatangani permintaan kait dari GitHub.JANKY_CHAT_DEFAULT_ROOM
: ruang obrolan di mana pemberitahuan dikirim secara default.Pengaturan Database Opsional:
DATABASE_URL
: URL Koneksi Basis Data. Contoh: postgres://user:password@host:port/db_name
.JANKY_DATABASE_SOCKET
: jalur ke soket database. Contoh: /var/run/mysql5/mysqld.sock
.Menggunakan Janky dengan Github Enterprise membutuhkan satu pengaturan tambahan:
JANKY_GITHUB_API_URL
: URL API lengkap dari instance, dengan tebasan trailing. Contoh: https://github.example.com/api/v3/
.https://github.com/blog/1227-commit-status-api
Untuk memperbarui permintaan tarik dengan status build menghasilkan token oauth melalui API GitHub:
curl -u username:password
-d '{ "scopes": [ "repo:status" ], "note": "janky" }'
https://api.github.com/authorizations
Kemudian atur JANKY_GITHUB_STATUS_TOKEN
. Secara opsional, Anda juga dapat mengatur JANKY_GITHUB_STATUS_CONTEXT
untuk mengirim konteks ke API github secara default
username
dan password
dalam contoh di atas harus sama dengan nilai yang disediakan untuk JANKY_GITHUB_USER
dan JANKY_GITHUB_PASSWORD
masing -masing.
Pengaturan yang diperlukan:
JANKY_CHAT=hipchat
JANKY_CHAT_HIPCHAT_TOKEN
: token otentikasi (token ini harus menjadi token admin, bukan token pemberitahuan.)JANKY_CHAT_HIPCHAT_FROM
: Nama pesan itu akan muncul dari. Default ke CI
.JANKY_HUBOT_USER
harus xmpp/jabber nama pengguna dalam format xxxxx_xxxxxx daripada emailJANKY_CHAT_DEFAULT_ROOM
harus menjadi nama ruangan alih -alih format XMPP, misalnya: Engineers
alih -alih xxxx_xxxxxx.Instalasi:
require "janky/chat_service/hipchat"
ke file config/environment.rb
sebelum baris Janky.setup(ENV)
.echo 'gem "hipchat", "~>0.4"' >> Gemfile
bundle
git commit -am "install hipchat"
Pengaturan yang diperlukan:
JANKY_CHAT=slack
JANKY_CHAT_SLACK_TEAM
: nama tim slackJANKY_CHAT_SLACK_TOKEN
: token otentikasi untuk pengguna mengirim pemberitahuan build.JANKY_CHAT_SLACK_USERNAME
: Nama pesan itu akan muncul dari. Default ke CI
.JANKY_CHAT_SLACK_ICON_URL
: url ke gambar untuk digunakan sebagai ikon untuk pesan ini.Instalasi:
require "janky/chat_service/slack"
ke file config/environment.rb
sebelum baris Janky.setup(ENV)
.echo 'gem "slack.rb"' >> Gemfile
bundle
git commit -am "install slack"
Mengirimkan pemberitahuan ke Hubot melalui skrip janky.
Pengaturan yang diperlukan:
JANKY_CHAT=hubot
JANKY_CHAT_HUBOT_URL
: URL ke instance hubot Anda.JANKY_CHAT_HUBOT_ROOMS
: Daftar kamar yang dapat diatur melalui ci set room
."#room, #another-room"
"34343:room, 23223:another-room"
"room, another-room"
Instalasi:
require "janky/chat_service/hubot"
ke file config/environment.rb
sebelum baris Janky.setup(ENV)
. Untuk membatasi akses ke anggota organisasi GitHub, daftarkan aplikasi OAuth baru di GitHub dengan callback diatur ke $JANKY_BASE_URL/auth/github/callback
kemudian atur beberapa pengaturan tambahan:
JANKY_SESSION_SECRET
: rahasia cookie sesi acak. Biasanya dihasilkan oleh alat seperti pwgen
.JANKY_AUTH_CLIENT_ID
: ID klien dari aplikasi OAuth.JANKY_AUTH_CLIENT_SECRET
: Rahasia klien dari aplikasi OAuth.JANKY_AUTH_ORGANIZATION
: Nama organisasi. Contoh: "GitHub".JANKY_AUTH_TEAM_ID
: ID tim opsional untuk diberikan kepada auth. Contoh: "1234". Instal skrip janky di hubot Anda lalu atur variabel lingkungan HUBOT_JANKY_URL
. Contoh: http://user:[email protected]/_hubot/
, dengan pengguna dan kata sandi yang diganti oleh JANKY_HUBOT_USER
dan JANKY_HUBOT_PASSWORD
masing -masing.
Perintah build default sudah cukup untuk sebagian besar aplikasi ruby:
$ bundle install --path vendor/gems --binstubs
$ bundle exec rake
Untuk kontrol lebih lanjut, Anda dapat menambahkan script/cibuild
di akar repositori Anda untuk dieksekusi Jenkins sebagai gantinya.
Untuk kontrol total, seluruh file config.xml
Jenkins dapat dikaitkan dengan janky build. Diberikan build yang disebut windows
dan nama templat psake
, Janky akan mencoba config/jobs/psake.xml.erb
untuk menggunakan templat, config/jobs/windows.xml.erb
untuk mencoba nama pekerjaan jika template tidak keluar, Sebelum akhirnya kembali ke konfigurasi default, config/jobs/default.xml.erb
. Setelah memperbarui atau menambahkan konfigurasi khusus, jalankan hubot ci setup
lagi untuk memperbarui server Jenkins.
Komposisi Docker dan Docker diperlukan untuk meretas proyek ini.
Siapkan lingkungan Anda dan berjalan:
script/bootstrap
Buat data basis data, tabel, dan benih:
script/setup
Mulai server:
docker-compose run --service-ports app script/server
Buka aplikasi:
open http://localhost:9393/
Jalankan test suite:
docker-compose run --rm app script/test
Garakan repositori janky di github dan kirim permintaan tarik. Perhatikan bahwa setiap perubahan perilaku tanpa tes akan ditolak. Jika Anda menambahkan fitur baru yang signifikan, silakan tambahkan tes dan dokumentasi.
Hak Cipta © 2011-2014, GitHub, Inc. Lihat file COPYING
untuk hak dan batasan lisensi (MIT).