Mit Jenkins Build- und Deployment-Informationen an Jira Cloud senden. Atlassian steht für Interoperabilität und liefert für Jenkins ein unentgeltlich bereitgestelltes Plugin.
Wie sieht es aus
Zu Gunsten der Lesbarkeit die Branch-Names in Klartext, statt Variablen. Das Jenkinsfile liegt im Bitbucket-Repository, mehr dazu weiter unten in diesem Artikel.
pipeline { agent any stages { stage('build') { steps { echo 'Building...' } post { always { // The branch name includes the related issue key jiraSendBuildInfo branch:'origin/KAN-3', site: 'atlasteamtraining.atlassian.net' } } } stage('deploy') { steps { echo 'Deployment...' } post { always { // The commit message includes the related issue key jiraSendDeploymentInfo site: 'atlasteamtraining.atlassian.net', environmentId: 'de-prod-1', environmentName: 'de-prod-1', environmentType: 'production' } } } } }
jiraSendBuildInfo liefert den Eintrag "1 build" im Jira-Issue und ob die Aktion erfolgreich gewesen ist.
jiraSendDeploymentInfo liefert den Eintrag unter Releases auf der rechten Seite im Jira-Issue und ob die Aktion erfolgreich gewesen ist. Hinweis: Es wird kein Release in Jira damit erzeugt.
Ein Klick auf die jeweilige Information unter Development oder Releases öffnet ein Popup-Fenster, mit weiteren Informationen.
Wie geht es
Für einen Test von dem Atlassian Plugin für Jenkins einen Paperspace Server mit wenigen Klicks erzeugen. Verwendet wird hier ubuntu 18.04 lts Server.
Ein paar Kommandos über die Command-Line abgesetzt und schon laufen die Docker Container mit Jenkins und Bitbucket. Hinweis, der externe Port vom Container wird an localhost gebunden, bzw. der Server kann nur über den nach außen sichtbaren Apache erreicht werden.
sudo snap install docker sudo apt-get install apache2 sudo snap install certbot --beta --classic sudo certbot --apache -d showcase.example.com sudo docker pull jenkins sudo docker volume create jira_jenkins sudo docker run -p 127.0.0.1:8080:8080 -p 127.0.0.1:50000:50000 -v jira_jenkins:/var/local/jenkins -d jenkins --prefix=/jenkins sudo docker pull atlassian/bitbucket-server sudo docker volume create --name bitbucketVolume sudo docker run -d -p 127.0.0.1:7990:7990 -p 127.0.0.1:7999:7999 --name bitbucket_server -v bitbucketVolume:/var/atlassian/application-data/bitbucket -e SERVER_PROXY_NAME=showcase.example.com -e SERVER_PROXY_PORT=443 -e SERVER_PROXY_SCHEME=https -e SERVER_SECURE=true -e SERVER_CONTEXT-PATH=/bitbucket atlassian/bitbucket-server
Auf die Konfiguration vom Apache, bzw. die Einrichtung von einem Reverse Proxy wird an dieser Stelle nicht eingegangen.
In Jira Cloud die Credentials für Jenkins erzeugen.
Jenkins Plugins installieren. Anschließend die oben erzeugten Credentials eintragen und mit Bitbucket (Docker Container) verknüpfen.
Eine Multibranch Pipeline in Jenkins erzeugen und mit dem Repository in Bitbucket verknüpfen.
Das Repository in Bitbucket. Der Inhalt von dem Jenkinsfile oben in diesem Artikel. HelloWorld.java steht hier nur exemplarisch und wird nicht weiter verwendet.
Pipeline ausführen
Auf "Build Now" klicken.
Console Output in Jenkins unten.
Der zweite Eintrag ist "SKIPPED…", weil mit diesem Durchlauf der Branch gebaut wurde (ISSUE-KEY im Branch-Name). Damit der zweite Eintrag "SUCCESS…" liefert, in der commit Message "… ISSUE-KEY …" schreiben.
Bei Fragen Atlasteam kontaktieren. Wir freuen uns auf Feedback und lieben es, tollen Support unseren Kunden zu bieten.
Lieben Gruß
Jens Bormüller