Em abril de 2022, este repositório não é mais usado ou mantido.
Este é o Moby, um servidor de integração contínuo criado no topo de Jenkins, controlado pelo Hubot, e projetado para o GitHub.
Construído em cima de Jenkins. A energia, a grande quantidade de plugins e a grande comunidade do servidor de CI popular, tudo em uma ótima experiência.
Controlado por Hubot. As operações diárias são expostas como comandos simples do Hubot que toda a equipe pode usar.
Projetado para Github. Janky cria os ganchos da web apropriados para você e o aplicativo da web restringe o acesso aos membros da sua organização do Github.
Comece configurando um novo trabalho de Jenkins e Github Web Hook para um repositório: [ORG]/[REPO]
hubot ci setup github/janky
O comando setup
pode ser executado com segurança repetidamente. Não fará nada a menos que precise. É preciso um argumento name
opcional: [ORG]/[REPO] [NAME]
hubot ci setup github/janky janky-ruby1.9.2
Também é preciso um argumento template
opcional: [ORG]/[REPO] [NAME] [TEMPLATE]
hubot ci setup github/janky janky-ruby1.9.2 ruby-build
Todas as ramificações são construídas automaticamente em push. Desative a construção automática com:
hubot ci toggle [REPO]
Nota : Se name
foi definido, você precisará usá -lo inteno.
hubot ci toggle [NAME]
Execute o comando novamente para reativá-lo. Forçar uma construção do ramo mestre:
hubot ci build [REPO]
Nota : Se name
foi definido, você precisará usá -lo inteno.
hubot ci build [NAME]
De um ramo específico: [REPO]/[BRANCH]
hubot ci build janky/libgit2
Diferentes construções não são relevantes para a mesma sala de bate -papo e, portanto, Janky permite escolher para onde as notificações são enviadas. Primeiro, receba uma lista de salas disponíveis:
hubot ci rooms
Em seguida, escolha um:
hubot ci set room janky The Serious Room
Obtenha o status de uma construção:
hubot ci status janky
Ramo específico: [REPO]/[BRANCH]
hubot ci status janky/libgit2
Todas as compilações:
hubot ci status
Por fim, obtenha uma referência rápida dos comandos disponíveis com:
hubot ci?
Janky requer acesso a um servidor Jenkins. A versão 1.580 é recomendada. Consulte a documentação Jenkins para obter instruções de instalação e instale o plug -in de notificação versão 1.4.
Lembre-se de definir o Jenkins URL em http://your-jenkins-server.com/configure
. Janky ainda acionará as compilações, mas não atualizará o status de compilação sem esse conjunto.
Janky foi projetado para ser implantado para Heroku.
Pegue todos os arquivos necessários da essência:
$ git clone git://gist.github.com/1497335 janky
Em seguida, empurre -o para um novo aplicativo Heroku:
$ cd janky
$ heroku create --stack cedar
$ bundle install
$ git add Gemfile.lock
$ git commit Gemfile.lock -m "lock bundle"
$ git push heroku master
Depois de configurar o aplicativo (veja abaixo), crie o banco de dados:
$ heroku run rake db:migrate
NOTA: O Ruby versão 2.0.0+ é necessário para executar o MUDO.
Recomendamos fortemente o backup do seu banco de dados irregular antes de atualizar.
O processo geral é atualizar a jóia e depois executar migrar. Aqui está como você faz isso em uma caixa local à qual você tem acesso (esse processo será diferente para Heroku):
cd [PATH-TO-JANKY]
gem update janky
rake db:migrate
Janky é configurado usando variáveis de ambiente. Use o comando heroku config
:
$ heroku config:add VARIABLE=value
Configurações necessárias:
JANKY_BASE_URL
: o URL do aplicativo com uma barra à direita. Exemplo: http://mf-doom-42.herokuapp.com/
.JANKY_BUILDER_DEFAULT
: o URL do servidor Jenkins com uma barra de arrasto. Exemplo: http://jenkins.example.com/
. Para autenticação básica, inclua as credenciais no URL: http://user:[email protected]/
. Usar o Github Oauth com Jenkins não é apoiado por Janky.JANKY_CONFIG_DIR
: diretório em que os modelos de configuração de construção são armazenados. Normalmente definido como /app/config
no Heroku.JANKY_HUBOT_USER
: Login usado para proteger a API Hubot.JANKY_HUBOT_PASSWORD
: senha para a API Hubot.JANKY_GITHUB_USER
: o login do usuário do github usado para acessar a API. Requer privilégios administrativos para configurar ganchos de serviço.JANKY_GITHUB_PASSWORD
: a senha do usuário do github.JANKY_GITHUB_HOOK_SECRET
: segredo usado para assinar solicitações de gancho do github.JANKY_CHAT_DEFAULT_ROOM
: sala de bate -papo onde as notificações são enviadas por padrão.Configurações opcionais do banco de dados:
DATABASE_URL
: URL de conexão com o banco de dados. Exemplo: postgres://user:password@host:port/db_name
.JANKY_DATABASE_SOCKET
: caminho para o soquete do banco de dados. Exemplo: /var/run/mysql5/mysqld.sock
.Usar o Janky com o Github Enterprise requer uma configuração extra:
JANKY_GITHUB_API_URL
: URL completo da API da instância, com uma barra à direita. Exemplo: https://github.example.com/api/v3/
.https://github.com/blog/1227-commit status-api
Para atualizar as solicitações de puxar com o status de compilação, gere um token OAuth através da API do GitHub:
curl -u username:password
-d '{ "scopes": [ "repo:status" ], "note": "janky" }'
https://api.github.com/authorizations
Em seguida, defina JANKY_GITHUB_STATUS_TOKEN
. Opcionalmente, você também pode definir JANKY_GITHUB_STATUS_CONTEXT
para enviar um contexto para a API do GitHub por padrão
username
e password
no exemplo acima devem ser os mesmos dos valores fornecidos para JANKY_GITHUB_USER
e JANKY_GITHUB_PASSWORD
, respectivamente.
Configurações necessárias:
JANKY_CHAT=hipchat
JANKY_CHAT_HIPCHAT_TOKEN
: token de autenticação (este token precisa ser um token de administração, não um token de notificação.)JANKY_CHAT_HIPCHAT_FROM
: nome que as mensagens aparecerão de. Padrões para CI
.JANKY_HUBOT_USER
deve ser o nome de usuário xmpp/jabber no formato xxxxx_xxxxxx em vez de emailJANKY_CHAT_DEFAULT_ROOM
deve ser o nome da sala em vez do formato XMPP, por exemplo: Engineers
em vez de xxxx_xxxxxx.Instalação:
require "janky/chat_service/hipchat"
ao arquivo config/environment.rb
antes da linha Janky.setup(ENV)
.echo 'gem "hipchat", "~>0.4"' >> Gemfile
bundle
git commit -am "install hipchat"
Configurações necessárias:
JANKY_CHAT=slack
JANKY_CHAT_SLACK_TEAM
: Nome da equipe do SlackJANKY_CHAT_SLACK_TOKEN
: token de autenticação para o usuário enviando notificações de compilação.JANKY_CHAT_SLACK_USERNAME
: nome que as mensagens aparecerão de. Padrões para CI
.JANKY_CHAT_SLACK_ICON_URL
: url para uma imagem a ser usada como ícone para esta mensagem.Instalação:
require "janky/chat_service/slack"
ao arquivo config/environment.rb
antes da linha Janky.setup(ENV)
.echo 'gem "slack.rb"' >> Gemfile
bundle
git commit -am "install slack"
Envia notificações para o Hubot via script irregular.
Configurações necessárias:
JANKY_CHAT=hubot
JANKY_CHAT_HUBOT_URL
: URL para sua instância Hubot.JANKY_CHAT_HUBOT_ROOMS
: Lista de salas que podem ser definidas via ci set room
."#room, #another-room"
"34343:room, 23223:another-room"
"room, another-room"
Instalação:
require "janky/chat_service/hubot"
ao arquivo config/environment.rb
antes da linha Janky.setup(ENV)
. Para restringir o acesso aos membros de uma organização do GitHub, registre um novo aplicativo OAuth no Github com o retorno de chamada definido como $JANKY_BASE_URL/auth/github/callback
, defina algumas configurações extras:
JANKY_SESSION_SECRET
: Cookie de sessão aleatória segredo. Normalmente gerado por uma ferramenta como pwgen
.JANKY_AUTH_CLIENT_ID
: o ID do cliente do aplicativo OAuth.JANKY_AUTH_CLIENT_SECRET
: o segredo do cliente do aplicativo OAuth.JANKY_AUTH_ORGANIZATION
: o nome da organização. Exemplo: "Github".JANKY_AUTH_TEAM_ID
: um ID de equipe opcional para dar autenticação. Exemplo: "1234". Instale o script irregular no seu hubot e defina a variável de ambiente HUBOT_JANKY_URL
. Exemplo: http://user:[email protected]/_hubot/
, com usuário e senha substituídos por JANKY_HUBOT_USER
e JANKY_HUBOT_PASSWORD
, respectivamente.
O comando de construção padrão deve ser suficiente para a maioria dos aplicativos Ruby:
$ bundle install --path vendor/gems --binstubs
$ bundle exec rake
Para mais controle, você pode adicionar um script/cibuild
na raiz do seu repositório para que Jenkins seja executado.
Para controle total, os arquivos config.xml
da Whole Jenkins podem ser associados às compilações Janky. Dada uma compilação chamada windows
e um nome de modelo de psake
, Janky tentará config/jobs/psake.xml.erb
para usar um modelo, config/jobs/windows.xml.erb
para experimentar o nome do trabalho se o modelo não sair, Antes de finalmente voltar à configuração padrão, config/jobs/default.xml.erb
. Depois de atualizar ou adicionar uma configuração personalizada, execute hubot ci setup
novamente para atualizar o servidor Jenkins.
Docker e Docker-Compose são necessários para invadir este projeto.
Coloque seu ambiente em funcionamento:
script/bootstrap
Crie os bancos de dados, tabelas e dados de sementes:
script/setup
Inicie o servidor:
docker-compose run --service-ports app script/server
Abra o aplicativo:
open http://localhost:9393/
Execute a suíte de teste:
docker-compose run --rm app script/test
Fork o repositório irregular no Github e envie uma solicitação de tração. Observe que quaisquer alterações no comportamento sem testes serão rejeitadas. Se você estiver adicionando novos recursos significativos, adicione testes e documentação.
Copyright © 2011-2014, Github, Inc. Consulte o arquivo COPYING
para obter direitos e limitações de licença (MIT).