Ab April 2022 wird dieses Repository nicht mehr verwendet oder aufrechterhalten.
Dies ist Janky, ein kontinuierlicher Integrationsserver, der auf Jenkins baut, von Hubot gesteuert und für GitHub entwickelt wurde.
Auf Jenkins gebaut. Die Kraft, die große Anzahl von Plugins und eine große Community des beliebten CI -Servers sind in einer großartigen Erfahrung abgeschlossen.
Kontrolliert von Hubot. Die täglichen Operationen werden als einfache Hubot -Befehle aufgedeckt, die das gesamte Team verwenden kann.
Für GitHub entwickelt. Janky erstellt die entsprechenden Web -Hooks für Sie und die Web -App beschränkt den Zugriff auf Mitglieder Ihrer Github -Organisation.
Beginnen Sie mit der Einrichtung eines neuen Jenkins -Jobs und Github -Web Hook für ein Repository: [ORG]/[REPO]
hubot ci setup github/janky
Der setup
-Befehl kann sicher immer wieder ausgeführt werden. Es wird nichts tun, wenn es nicht muss. Es dauert ein optionales name
: [ORG]/[REPO] [NAME]
hubot ci setup github/janky janky-ruby1.9.2
Es ist auch ein optionales template
erforderlich: [ORG]/[REPO] [NAME] [TEMPLATE]
hubot ci setup github/janky janky-ruby1.9.2 ruby-build
Alle Zweige werden beim Push automatisch erstellt. Automatische Build mit:
hubot ci toggle [REPO]
HINWEIS : Wenn name
festgelegt wurde, müssen Sie ihn intensiv verwenden.
hubot ci toggle [NAME]
Führen Sie den Befehl erneut aus, um ihn erneut zu unterstützen. Erzwingen Sie einen Aufbau des Master -Zweigs:
hubot ci build [REPO]
HINWEIS : Wenn name
festgelegt wurde, müssen Sie ihn intensiv verwenden.
hubot ci build [NAME]
Eines bestimmten Zweigs: [REPO]/[BRANCH]
hubot ci build janky/libgit2
Verschiedene Builds sind für denselben Chatraum nicht relevant und können Sie mit Janky auswählen, wohin Benachrichtigungen gesendet werden. Erhalten Sie zuerst eine Liste der verfügbaren Zimmer:
hubot ci rooms
Dann wählen Sie einen aus:
hubot ci set room janky The Serious Room
Erhalten Sie den Status eines Builds:
hubot ci status janky
Spezifischer Zweig: [REPO]/[BRANCH]
hubot ci status janky/libgit2
Alle Builds:
hubot ci status
Nehmen Sie schließlich eine kurze Referenz auf die verfügbaren Befehle mit:
hubot ci?
Janky benötigt Zugriff auf einen Jenkins -Server. Version 1.580 wird empfohlen. In der Jenkins -Dokumentation finden Sie die Installationsanweisungen und installieren Sie das Benachrichtigungs -Plugin Version 1.4.
Denken Sie daran, die Jenkins-URL in http://your-jenkins-server.com/configure
festzulegen. Janky wird weiterhin Builds auslösen, den Build -Status ohne diesen Satz nicht aktualisieren.
Janky soll nach Heroku eingesetzt werden.
Nehmen Sie alle notwendigen Dateien vom GIST:
$ git clone git://gist.github.com/1497335 janky
Dann schieben Sie es auf eine neue Heroku -App:
$ cd janky
$ heroku create --stack cedar
$ bundle install
$ git add Gemfile.lock
$ git commit Gemfile.lock -m "lock bundle"
$ git push heroku master
Erstellen Sie nach der Konfiguration der App (siehe unten) die Datenbank:
$ heroku run rake db:migrate
Hinweis: Ruby Version 2.0.0+ ist erforderlich, um Janky auszuführen.
Wir empfehlen dringend, Ihre verjüngende Datenbank vor dem Upgrade zu unterstützen.
Der allgemeine Prozess besteht darin, das Edelstein zu aktualisieren und dann Migration auszuführen. So machen Sie das in einer lokalen Box, auf die Sie Zugriff haben (dieser Vorgang wird für Heroku unterscheiden):
cd [PATH-TO-JANKY]
gem update janky
rake db:migrate
Janky wird mit Umgebungsvariablen konfiguriert. Verwenden Sie den Befehl heroku config
:
$ heroku config:add VARIABLE=value
Erforderliche Einstellungen:
JANKY_BASE_URL
: Die Anwendungs -URL mit einem nachverfolgenden Schrägstrich. Beispiel: http://mf-doom-42.herokuapp.com/
.JANKY_BUILDER_DEFAULT
: Die Jenkins Server -URL mit einem nachverfolgenden Schrägstrich. Beispiel: http://jenkins.example.com/
. Für Basic AUTH geben Sie die Anmeldeinformationen in die URL ein: http://user:[email protected]/
. Die Verwendung von Github Oauth mit Jenkins wird nicht von Janky unterstützt.JANKY_CONFIG_DIR
: Verzeichnis, in dem Build -Konfigurationsvorlagen gespeichert sind. Normalerweise auf /app/config
auf Heroku eingestellt.JANKY_HUBOT_USER
: Login verwendet, um die Hubot -API zu schützen.JANKY_HUBOT_PASSWORD
: Passwort für die Hubot -API.JANKY_GITHUB_USER
: Die Anmeldung des Github -Benutzers, der zum Zugriff auf die API verwendet wird. Erfordert Verwaltungsberechtigte, um Service -Hooks einzurichten.JANKY_GITHUB_PASSWORD
: Das Kennwort für den GitHub -Benutzer.JANKY_GITHUB_HOOK_SECRET
: Secret verwendet, um Hakenanforderungen von GitHub zu signieren.JANKY_CHAT_DEFAULT_ROOM
: Chatraum, in dem Benachrichtigungen standardmäßig gesendet werden.Optionale Datenbankeinstellungen:
DATABASE_URL
: Datenbankverbindungs -URL. Beispiel: postgres://user:password@host:port/db_name
.JANKY_DATABASE_SOCKET
: Pfad zum Datenbankbuchse. Beispiel: /var/run/mysql5/mysqld.sock
.Die Verwendung von Janky mit Github Enterprise erfordert eine zusätzliche Einstellung:
JANKY_GITHUB_API_URL
: Vollständige API -URL der Instanz mit einem nachverfolgenden Schrägstrich. Beispiel: https://github.example.com/api/v3/
.https://github.com/blog/1227-commit-status-api
So aktualisieren Sie Pull -Anfragen mit dem Build -Status ein OAuth -Token über die Github -API:
curl -u username:password
-d '{ "scopes": [ "repo:status" ], "note": "janky" }'
https://api.github.com/authorizations
Setzen Sie dann JANKY_GITHUB_STATUS_TOKEN
. Optional können Sie auch JANKY_GITHUB_STATUS_CONTEXT
festlegen, um standardmäßig einen Kontext an die Github -API zu senden
username
und password
im obigen Beispiel sollten die gleichen wie die Werte für JANKY_GITHUB_USER
bzw. JANKY_GITHUB_PASSWORD
entsprechen.
Erforderliche Einstellungen:
JANKY_CHAT=hipchat
JANKY_CHAT_HIPCHAT_TOKEN
: Authentifizierungs -Token (dieses Token muss ein Administrator -Token sein, kein Benachrichtigungs -Token.)JANKY_CHAT_HIPCHAT_FROM
: Name, von dem Nachrichten angezeigt werden. Standardeinstellungen zu CI
.JANKY_HUBOT_USER
sollte XMPP/Jabber -Benutzername in Format xxxxx_xxxxxx anstelle von E -Mails seinJANKY_CHAT_DEFAULT_ROOM
sollte der Name des Raums anstelle des XMPP -Formats sein, zum Beispiel: Engineers
anstelle von xxxx_xxxxxx.Installation:
require "janky/chat_service/hipchat"
config/environment.rb
vor der Janky.setup(ENV)
-Linie hinzu.echo 'gem "hipchat", "~>0.4"' >> Gemfile
bundle
git commit -am "install hipchat"
Erforderliche Einstellungen:
JANKY_CHAT=slack
JANKY_CHAT_SLACK_TEAM
: Slack -TeamnameJANKY_CHAT_SLACK_TOKEN
: Authentifizierungs -Token für den Benutzer senden Build -Benachrichtigungen.JANKY_CHAT_SLACK_USERNAME
: Name, von dem Nachrichten angezeigt werden. Standardeinstellungen zu CI
.JANKY_CHAT_SLACK_ICON_URL
: URL zu einem Bild als Symbol für diese Nachricht.Installation:
config/environment.rb
vor der Janky.setup(ENV)
-Leile require "janky/chat_service/slack"
.echo 'gem "slack.rb"' >> Gemfile
bundle
git commit -am "install slack"
Sendet Benachrichtigungen über das Janky -Skript an Hubot.
Erforderliche Einstellungen:
JANKY_CHAT=hubot
JANKY_CHAT_HUBOT_URL
: URL zu Ihrer Hubot -Instanz.JANKY_CHAT_HUBOT_ROOMS
: Liste der Räume, die über ci set room
festgelegt werden können."#room, #another-room"
"34343:room, 23223:another-room"
"room, another-room"
Installation:
Janky.setup(ENV)
require "janky/chat_service/hubot"
zur Datei config/environment.rb
zu erforderlich. Um den Zugriff auf Mitglieder einer Github -Organisation einzuschränken, registrieren Sie eine neue OAuth -Anwendung auf GitHub mit dem Rückruf auf $JANKY_BASE_URL/auth/github/callback
dann legen Sie einige zusätzliche Einstellungen fest:
JANKY_SESSION_SECRET
: Random Session Cookie Secret. Typischerweise von einem Werkzeug wie pwgen
erzeugt.JANKY_AUTH_CLIENT_ID
: Die Client -ID der OAuth -Anwendung.JANKY_AUTH_CLIENT_SECRET
: Das Client -Geheimnis der OAuth -Anwendung.JANKY_AUTH_ORGANIZATION
: Der Organisationsname. Beispiel: "Github".JANKY_AUTH_TEAM_ID
: Eine optionale Team -ID, um Auth zu geben. Beispiel: "1234". Installieren Sie das Janky -Skript in Ihrem Hubot und setzen Sie die Umgebungsvariable HUBOT_JANKY_URL
. Beispiel: http://user:[email protected]/_hubot/
, wobei Benutzer und Passwort durch JANKY_HUBOT_USER
und JANKY_HUBOT_PASSWORD
ersetzt werden.
Der Befehl Standard Build sollte für die meisten Ruby -Anwendungen ausreichen:
$ bundle install --path vendor/gems --binstubs
$ bundle exec rake
Für mehr Steuerung können Sie ein script/cibuild
zum Stamm Ihres Repositorys hinzufügen, damit Jenkins stattdessen ausgeführt werden kann.
Für die Gesamtsteuerung können die config.xml
-Dateien von Whole Jenkins mit Janky Builds zugeordnet werden. Bei einem Build namens windows
und einem Vorlagennamen von psake
wird Janky config/jobs/psake.xml.erb
ausprobiert, um eine Vorlage zu verwenden, config/jobs/windows.xml.erb
um den Jobnamen auszuprobieren, wenn die Vorlage nicht beendet wird. Bevor er schließlich auf die Standardkonfiguration zurückgreift, config/jobs/default.xml.erb
. Führen Sie nach dem Aktualisieren oder Hinzufügen einer benutzerdefinierten Konfiguration hubot ci setup
erneut aus, um den Jenkins -Server zu aktualisieren.
Docker und Docker-Compose sind für das Hacken dieses Projekts erforderlich.
Holen Sie sich Ihre Umgebung zum Laufen:
script/bootstrap
Erstellen Sie die Datenbanken, Tabellen und Samendaten:
script/setup
Starten Sie den Server:
docker-compose run --service-ports app script/server
Öffnen Sie die App:
open http://localhost:9393/
Führen Sie die Testsuite aus:
docker-compose run --rm app script/test
Geben Sie das Janky Repository auf Github und senden Sie eine Pull -Anfrage. Beachten Sie, dass Änderungen des Verhaltens ohne Tests abgelehnt werden. Wenn Sie bedeutende neue Funktionen hinzufügen, fügen Sie bitte beide Tests und Dokumentationen hinzu.
Copyright © 2011-2014, Github, Inc. Siehe COPYING
für Lizenzrechte und Einschränkungen (MIT).