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=hipchat
JANKY_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"' >> Gemfile
bundle
git commit -am "install hipchat"
필수 설정 :
JANKY_CHAT=slack
JANKY_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"' >> Gemfile
bundle
git commit -am "install slack"
Janky 스크립트를 통해 Hubot에 알림을 보냅니다.
필수 설정 :
JANKY_CHAT=hubot
JANKY_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
파일을 참조하십시오.