ณ เดือนเมษายน 2565 ที่เก็บนี้จะไม่ถูกใช้หรือบำรุงรักษาอีกต่อไป
นี่คือ Janky เซิร์ฟเวอร์การรวมอย่างต่อเนื่องที่สร้างขึ้นบนด้านบนของเจนกินส์ควบคุมโดย Hubot และออกแบบมาสำหรับ GitHub
สร้างขึ้นที่ด้านบนของเจนกินส์ พลังงานจำนวนมากของปลั๊กอินและชุมชนขนาดใหญ่ของเซิร์ฟเวอร์ CI ยอดนิยมล้วน แต่ห่อหุ้มด้วยประสบการณ์ที่ยอดเยี่ยม
ควบคุมโดย Hubot การดำเนินงานแบบวันต่อวันเป็นคำสั่งฮับอตอย่างง่ายที่ทั้งทีมสามารถใช้ได้
ออกแบบมาสำหรับ GitHub Janky สร้าง hooks เว็บที่เหมาะสมสำหรับคุณและเว็บแอป จำกัด การเข้าถึงสมาชิกขององค์กร GitHub ของคุณ
เริ่มต้นด้วยการตั้งค่างาน Jenkins ใหม่และ GitHub Web Hook สำหรับที่เก็บ: [ORG]/[REPO]
hubot ci setup github/janky
คำสั่ง setup
สามารถเรียกใช้ซ้ำแล้วซ้ำอีก มันจะไม่ทำอะไรเลยเว้นแต่จะต้องทำ ต้องใช้อาร์กิวเมนต์ name
ทางเลือก: [ORG]/[REPO] [NAME]
hubot ci setup github/janky janky-ruby1.9.2
นอกจากนี้ยังต้องใช้ template
เทมเพลตเสริม: [ORG]/[REPO] [NAME] [TEMPLATE]
hubot ci setup github/janky janky-ruby1.9.2 ruby-build
สาขาทั้งหมดจะถูกสร้างขึ้นโดยอัตโนมัติเมื่อพุช ปิดใช้งานการสร้างอัตโนมัติด้วย:
hubot ci toggle [REPO]
หมายเหตุ : หากตั้ง name
คุณจะต้องใช้มัน
hubot ci toggle [NAME]
เรียกใช้คำสั่งอีกครั้งเพื่อเปิดใช้งานอีกครั้ง บังคับให้สร้างสาขาหลัก:
hubot ci build [REPO]
หมายเหตุ : หากตั้ง name
คุณจะต้องใช้มัน
hubot ci build [NAME]
ของสาขาเฉพาะ: [REPO]/[BRANCH]
hubot ci build janky/libgit2
การสร้างที่แตกต่างไม่เกี่ยวข้องกับห้องแชทเดียวกันและดังนั้น Janky ให้คุณเลือกที่จะส่งการแจ้งเตือนไปที่ ก่อนอื่นรับรายชื่อห้องว่าง:
hubot ci rooms
จากนั้นเลือกหนึ่ง:
hubot ci set room janky The Serious Room
รับสถานะของการสร้าง:
hubot ci status janky
สาขาเฉพาะ: [REPO]/[BRANCH]
hubot ci status janky/libgit2
การสร้างทั้งหมด:
hubot ci status
สุดท้ายรับการอ้างอิงอย่างรวดเร็วของคำสั่งที่มีอยู่ด้วย:
hubot ci?
Janky ต้องการการเข้าถึงเซิร์ฟเวอร์ Jenkins แนะนำให้ใช้เวอร์ชัน 1.580 อ้างถึงเอกสารประกอบ Jenkins สำหรับคำแนะนำในการติดตั้งและติดตั้งปลั๊กอินการแจ้งเตือนเวอร์ชัน 1.4
อย่าลืมตั้งค่า URL ของ Jenkins ใน http://your-jenkins-server.com/configure
Janky จะยังคงสร้างการสร้าง แต่จะไม่อัปเดตสถานะการสร้างหากไม่มีชุดนี้
Janky ได้รับการออกแบบให้นำไปใช้กับ Heroku
คว้าไฟล์ที่จำเป็นทั้งหมดจากส่วนสำคัญ:
$ git clone git://gist.github.com/1497335 janky
จากนั้นผลักมันขึ้นไปยังแอพ Heroku ใหม่:
$ cd janky
$ heroku create --stack cedar
$ bundle install
$ git add Gemfile.lock
$ git commit Gemfile.lock -m "lock bundle"
$ git push heroku master
หลังจากกำหนดค่าแอป (ดูด้านล่าง) ให้สร้างฐานข้อมูล:
$ heroku run rake db:migrate
หมายเหตุ: Ruby เวอร์ชัน 2.0.0+ จำเป็นต้องใช้ Janky
เรา ขอแนะนำ ให้สำรองฐานข้อมูล janky ของคุณก่อนที่จะอัพเกรด
กระบวนการทั่วไปคือการอัพเกรดอัญมณีแล้วเรียกใช้โยกย้าย นี่คือวิธีที่คุณทำในกล่องท้องถิ่นที่คุณสามารถเข้าถึงได้ (กระบวนการนี้จะแตกต่างกันสำหรับ Heroku):
cd [PATH-TO-JANKY]
gem update janky
rake db:migrate
Janky ได้รับการกำหนดค่าโดยใช้ตัวแปรสภาพแวดล้อม ใช้คำสั่ง heroku config
:
$ heroku config:add VARIABLE=value
การตั้งค่าที่จำเป็น:
JANKY_BASE_URL
: URL แอปพลิเคชัน พร้อม สแลชต่อท้าย ตัวอย่าง: http://mf-doom-42.herokuapp.com/
JANKY_BUILDER_DEFAULT
: URL เซิร์ฟเวอร์เจนกินส์ พร้อม สแลชต่อท้าย ตัวอย่าง: http://jenkins.example.com/
สำหรับการรับรองความถูกต้องขั้นพื้นฐานให้รวมข้อมูลรับรองใน URL: http://user:[email protected]/
การใช้ GitHub Oauth กับ Jenkins ไม่ได้รับการสนับสนุนโดย JankyJANKY_CONFIG_DIR
: ไดเรกทอรีที่สร้างเทมเพลตการกำหนดค่า โดยทั่วไปจะตั้งค่าเป็น /app/config
บน HerokuJANKY_HUBOT_USER
: เข้าสู่ระบบที่ใช้เพื่อป้องกัน Hubot APIJANKY_HUBOT_PASSWORD
: รหัสผ่านสำหรับ Hubot APIJANKY_GITHUB_USER
: การเข้าสู่ระบบของผู้ใช้ GitHub ที่ใช้ในการเข้าถึง API ต้องการสิทธิ์การดูแลระบบเพื่อตั้งค่าเบ็ดบริการJANKY_GITHUB_PASSWORD
: รหัสผ่านสำหรับผู้ใช้ GitHubJANKY_GITHUB_HOOK_SECRET
: ความลับที่ใช้ในการลงนามในคำขอเบ็ดจาก GitHubJANKY_CHAT_DEFAULT_ROOM
: ห้องแชทที่มีการส่งการแจ้งเตือนตามค่าเริ่มต้นการตั้งค่าฐานข้อมูลเสริม:
DATABASE_URL
: URL การเชื่อมต่อฐานข้อมูล ตัวอย่าง: postgres://user:password@host:port/db_name
JANKY_DATABASE_SOCKET
: พา ธ ไปยังซ็อกเก็ตฐานข้อมูล ตัวอย่าง: /var/run/mysql5/mysqld.sock
การใช้ Janky กับ GitHub Enterprise ต้องมีการตั้งค่าพิเศษหนึ่งรายการ:
JANKY_GITHUB_API_URL
: URL API เต็มรูปแบบของอินสแตนซ์ พร้อม สแลชต่อท้าย ตัวอย่าง: https://github.example.com/api/v3/
https://github.com/blog/1227-commit-status-api
ในการอัปเดตคำขอดึงด้วยสถานะการสร้างสร้างโทเค็น OAuth ผ่าน GitHub API:
curl -u username:password
-d '{ "scopes": [ "repo:status" ], "note": "janky" }'
https://api.github.com/authorizations
จากนั้นตั้งค่า JANKY_GITHUB_STATUS_TOKEN
นอกจากนี้คุณยังสามารถตั้งค่า JANKY_GITHUB_STATUS_CONTEXT
เพื่อส่งบริบทไปยัง GitHub API โดยค่าเริ่มต้น
username
และ password
ในตัวอย่างข้างต้นควรเป็นค่าเดียวกับค่าที่ให้ไว้สำหรับ JANKY_GITHUB_USER
และ JANKY_GITHUB_PASSWORD
ตามลำดับ
การตั้งค่าที่จำเป็น:
JANKY_CHAT=hipchat
JANKY_CHAT_HIPCHAT_TOKEN
: โทเค็นการรับรองความถูกต้อง (โทเค็นนี้ต้องเป็นโทเค็นผู้ดูแลระบบไม่ใช่โทเค็นการแจ้งเตือน)JANKY_CHAT_HIPCHAT_FROM
: ชื่อที่ข้อความจะปรากฏขึ้นจาก ค่าเริ่มต้นเป็น CI
JANKY_HUBOT_USER
ควรเป็นชื่อผู้ใช้ xmpp/jabber ในรูปแบบ xxxxxxxxxxx มากกว่าอีเมลJANKY_CHAT_DEFAULT_ROOM
ควรเป็นชื่อของห้องแทนรูปแบบ XMPP ตัวอย่างเช่น: Engineers
แทนที่จะเป็น xxxx_xxxxxxการติดตั้ง:
require "janky/chat_service/hipchat"
ไปยังไฟล์ config/environment.rb
ก่อน บรรทัด Janky.setup(ENV)
echo 'gem "hipchat", "~>0.4"' >> Gemfile
bundle
git commit -am "install hipchat"
การตั้งค่าที่จำเป็น:
JANKY_CHAT=slack
JANKY_CHAT_SLACK_TEAM
: Slack Team NameJANKY_CHAT_SLACK_TOKEN
: โทเค็นการตรวจสอบสิทธิ์สำหรับผู้ใช้ที่ส่งการแจ้งเตือนบิลด์JANKY_CHAT_SLACK_USERNAME
: ชื่อที่ข้อความจะปรากฏขึ้นจาก ค่าเริ่มต้นเป็น CI
JANKY_CHAT_SLACK_ICON_URL
: url ไปยังรูปภาพที่จะใช้เป็นไอคอนสำหรับข้อความนี้การติดตั้ง:
require "janky/chat_service/slack"
ไปยังไฟล์ config/environment.rb
ก่อน บรรทัด Janky.setup(ENV)
echo 'gem "slack.rb"' >> Gemfile
bundle
git commit -am "install slack"
ส่งการแจ้งเตือนไปยัง Hubot ผ่านสคริปต์ janky
การตั้งค่าที่จำเป็น:
JANKY_CHAT=hubot
JANKY_CHAT_HUBOT_URL
: url ไปยังอินสแตนซ์ฮับอตของคุณJANKY_CHAT_HUBOT_ROOMS
: รายการห้องพักที่สามารถตั้งค่าผ่าน ci set room
"#room, #another-room"
"34343:room, 23223:another-room"
"room, another-room"
การติดตั้ง:
require "janky/chat_service/hubot"
ไปยังไฟล์ config/environment.rb
ก่อน บรรทัด Janky.setup(ENV)
หากต้องการ จำกัด การเข้าถึงสมาชิกขององค์กร GitHub ให้ลงทะเบียนแอปพลิเคชัน OAUTH ใหม่บน GitHub ด้วยการตั้งค่าการโทรกลับเป็น $JANKY_BASE_URL/auth/github/callback
จากนั้นตั้งค่าการตั้งค่าเพิ่มเติมสองสามครั้ง:
JANKY_SESSION_SECRET
: สุ่มเซสชันคุกกี้ลับ โดยทั่วไปแล้วจะสร้างโดยเครื่องมือเช่น pwgen
JANKY_AUTH_CLIENT_ID
: รหัสไคลเอนต์ของแอปพลิเคชัน OAuthJANKY_AUTH_CLIENT_SECRET
: ความลับของลูกค้าของแอปพลิเคชัน OAuthJANKY_AUTH_ORGANIZATION
: ชื่อองค์กร ตัวอย่าง: "GitHub"JANKY_AUTH_TEAM_ID
: รหัสทีมเสริมเพื่อให้การรับรองความถูกต้อง ตัวอย่าง: "1234" ติดตั้งสคริปต์ janky ใน Hubot ของคุณจากนั้นตั้งค่าตัวแปรสภาพแวดล้อม HUBOT_JANKY_URL
ตัวอย่าง: http://user:[email protected]/_hubot/
พร้อมกับผู้ใช้และรหัสผ่านแทนที่ด้วย JANKY_HUBOT_USER
และ JANKY_HUBOT_PASSWORD
ตามลำดับ
คำสั่ง build เริ่มต้นควรเพียงพอสำหรับแอปพลิเคชันทับทิมส่วนใหญ่:
$ bundle install --path vendor/gems --binstubs
$ bundle exec rake
สำหรับการควบคุมเพิ่มเติมคุณสามารถเพิ่ม script/cibuild
ที่รากของที่เก็บของคุณเพื่อให้เจนกินส์ดำเนินการแทน
สำหรับการควบคุมทั้งหมดไฟล์ config.xml
ทั้งหมดของ Jenkins สามารถเชื่อมโยงกับ builds janky ด้วยการสร้างที่เรียกว่า windows
และชื่อเทมเพลตของ psake
janky จะลอง config/jobs/psake.xml.erb
เพื่อใช้เทมเพลต config/jobs/windows.xml.erb
เพื่อลองใช้ชื่องานหากเทมเพลตไม่ออก ก่อนที่จะล้มลงในการกำหนดค่าเริ่มต้น config/jobs/default.xml.erb
หลังจากอัปเดตหรือเพิ่มการกำหนดค่าที่กำหนดเองให้เรียกใช้ hubot ci setup
อีกครั้งเพื่ออัปเดตเซิร์ฟเวอร์ Jenkins
Docker และ Docker-compose เป็นสิ่งจำเป็นสำหรับการแฮ็คในโครงการนี้
ทำให้สภาพแวดล้อมของคุณทำงานได้:
script/bootstrap
สร้างฐานข้อมูลตารางและข้อมูลเมล็ดพันธุ์:
script/setup
เริ่มต้นเซิร์ฟเวอร์:
docker-compose run --service-ports app script/server
เปิดแอพ:
open http://localhost:9393/
เรียกใช้ชุดทดสอบ:
docker-compose run --rm app script/test
แยกที่เก็บ janky บน GitHub และส่งคำขอดึง โปรดทราบว่าการเปลี่ยนแปลงพฤติกรรมใด ๆ ที่ไม่มีการทดสอบจะถูกปฏิเสธ หากคุณกำลังเพิ่มคุณสมบัติใหม่ที่สำคัญโปรดเพิ่มทั้งการทดสอบและเอกสารประกอบ
ลิขสิทธิ์© 2011-2014, GitHub, Inc. ดูไฟล์ COPYING
สำหรับสิทธิ์และข้อ จำกัด ใบอนุญาต (MIT)