2022 년 4 월 현재이 저장소는 더 이상 사용되거나 유지되지 않습니다.
이것은 Jenkins 위에 내장 된 연속 통합 서버 인 Janky이며 Hubot에 의해 제어되고 Github 용으로 설계되었습니다.
Jenkins 위에 지어졌습니다. 인기있는 CI 서버의 전원, 방대한 양의 플러그인 및 대규모 커뮤니티는 모두 훌륭한 경험으로 싸여 있습니다.
Hubot에 의해 제어됩니다. 일상적인 운영은 전체 팀이 사용할 수있는 간단한 허브 명령으로 노출됩니다.
Github 용으로 설계되었습니다. Janky는 귀하를 위해 적절한 웹 후크를 생성하고 웹 앱은 Github 조직의 구성원에 대한 액세스를 제한합니다.
저장소에 대한 새로운 Jenkins 작업 및 Github 웹 후크를 설정하여 시작하십시오 : [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를 설치하십시오.
http://your-jenkins-server.com/configure 에서 Jenkins URL을 설정하십시오. Janky는 여전히 빌드를 트리거하지만이 세트 없이는 빌드 상태를 업데이트하지 않습니다.
Janky는 Heroku에 배치되도록 설계되었습니다.
필요한 모든 파일을 GIST에서 가져옵니다.
$ 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
참고 : Janky를 실행하려면 Ruby 버전 2.0.0+가 필요합니다.
업그레이드하기 전에 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 : 후행 슬래시 가있는 Jenkins 서버 URL. 예 : http://jenkins.example.com/ . 기본 인증의 경우 http://user:[email protected]/ 에 자격 증명을 포함시킵니다. Jenkins와 함께 Github Oauth를 사용하는 것은 Janky가 지원하지 않습니다.JANKY_CONFIG_DIR : 빌드 구성 템플릿이 저장되는 디렉토리. 일반적으로 Heroku에서 /app/config 로 설정되었습니다.JANKY_HUBOT_USER : Hubot API를 보호하는 데 사용되는 로그인.JANKY_HUBOT_PASSWORD : Hubot API의 비밀번호.JANKY_GITHUB_USER : Github 사용자의 로그인은 API에 액세스하는 데 사용됩니다. 서비스 후크를 설정하려면 관리 권한이 필요합니다.JANKY_GITHUB_PASSWORD : github 사용자의 비밀번호.JANKY_GITHUB_HOOK_SECRET : github의 후크 요청에 서명하는 데 비밀이 사용됩니다.JANKY_CHAT_DEFAULT_ROOM : 기본적으로 알림이 전송되는 대화방.선택적 데이터베이스 설정 :
DATABASE_URL : Database Connection URL. 예 : postgres://user:password@host:port/db_name .JANKY_DATABASE_SOCKET : 데이터베이스 소켓으로가는 경로. 예 : /var/run/mysql5/mysqld.sock .Github Enterprise와 함께 Janky를 사용하면 하나의 추가 설정이 필요합니다.
JANKY_GITHUB_API_URL : 인스턴스의 전체 API URL, 후행 슬래시 가 있습니다 . 예 : https://github.example.com/api/v3/ .https://github.com/blog/1227-commit-status-api
빌드 상태로 풀 요청을 업데이트하려면 GitHub API를 통해 OAUTH 토큰을 생성합니다.
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=hipchatJANKY_CHAT_HIPCHAT_TOKEN : 인증 토큰 (이 토큰은 알림 토큰이 아닌 관리자 토큰이어야합니다.)JANKY_CHAT_HIPCHAT_FROM : 메시지가 표시됩니다. CI 에 대한 기본값.JANKY_HUBOT_USER 이메일 대신 xxxxx_xxxxx 형식의 xmpp/jabber 사용자 이름이어야합니다.JANKY_CHAT_DEFAULT_ROOM XMPP 형식 대신 객실의 이름이어야합니다. 예를 들어 XXXX_XXXXXX 대신 Engineers .설치:
Janky.setup(ENV) 라인 전에 config/environment.rb 파일에 require "janky/chat_service/hipchat" .echo 'gem "hipchat", "~>0.4"' >> Gemfilebundlegit commit -am "install hipchat"필수 설정 :
JANKY_CHAT=slackJANKY_CHAT_SLACK_TEAM : 슬랙 팀 이름JANKY_CHAT_SLACK_TOKEN : 사용자가 빌드 알림을 보내는 인증 토큰.JANKY_CHAT_SLACK_USERNAME : 메시지가 표시됩니다. CI 에 대한 기본값.JANKY_CHAT_SLACK_ICON_URL :이 메시지의 아이콘으로 사용할 이미지의 URL.설치:
Janky.setup(ENV) 행 전에 config/environment.rb 파일에 require "janky/chat_service/slack" .echo 'gem "slack.rb"' >> Gemfilebundlegit commit -am "install slack"Janky 스크립트를 통해 Hubot에 알림을 보냅니다.
필수 설정 :
JANKY_CHAT=hubotJANKY_CHAT_HUBOT_URL : hubot 인스턴스에 대한 URL.JANKY_CHAT_HUBOT_ROOMS : ci set room 통해 설정할 수있는 객실 목록."#room, #another-room""34343:room, 23223:another-room""room, another-room" 있는 목록설치:
Janky.setup(ENV) 라인 전에 config/environment.rb 파일에 require "janky/chat_service/hubot" . GitHub 조직의 멤버에 대한 액세스를 제한하려면 $JANKY_BASE_URL/auth/github/callback 으로 콜백을 설정 한 콜백으로 GitHub에 새 OAUTH 응용 프로그램을 등록한 다음 몇 가지 추가 설정을 설정하십시오.
JANKY_SESSION_SECRET : 랜덤 세션 쿠키 비밀. 일반적으로 pwgen 과 같은 도구에 의해 생성됩니다.JANKY_AUTH_CLIENT_ID : Oauth 응용 프로그램의 클라이언트 ID.JANKY_AUTH_CLIENT_SECRET : Oauth 응용 프로그램의 클라이언트 비밀.JANKY_AUTH_ORGANIZATION : 조직 이름. 예 : "Github".JANKY_AUTH_TEAM_ID : Auth를 제공 할 선택적 팀 ID. 예 : "1234". Hubot에 Janky 스크립트를 설치 한 다음 HUBOT_JANKY_URL 환경 변수를 설정하십시오. 예 : http://user:[email protected]/_hubot/ , 사용자와 암호가 각각 JANKY_HUBOT_USER 및 JANKY_HUBOT_PASSWORD 로 대체합니다.
기본 빌드 명령은 대부분의 루비 애플리케이션에 충분해야합니다.
$ bundle install --path vendor/gems --binstubs
$ bundle exec rake
더 많은 제어를 위해 Jenkins가 대신 실행할 수 있도록 저장소의 루트에 script/cibuild 추가 할 수 있습니다.
Total Control의 경우 전체 Jenkins의 config.xml 파일은 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
github에서 얀키 저장소를 포크하고 풀 요청을 보냅니다. 테스트없이 행동의 변경 사항은 거부됩니다. 중요한 새로운 기능을 추가하는 경우 테스트와 문서를 모두 추가하십시오.
Copyright © 2011-2014, Github, Inc. 라이센스 권리 및 제한 사항 (MIT)은 COPYING 파일을 참조하십시오.