GitLab CI und Artifactory: Auf die Plätze, fertig, Build!
Die Integration von JFrog Artifactory in Ihren GitLab-CI-Workflow macht das Mantra "Release Fast or Die" von JFrog zu einer lebendigen Realität.
In diesem Blog-Beitrag wird beschrieben, wie Sie GitLab CI mit Artifactory integrieren können, um nicht nur Binärdateien aufzulösen und bereitzustellen, sondern auch um die Build Integration-Funktion von Artifactory zu nutzen.
Veröffentlichen und verwalten Sie Ihre Pakete
GitLab CI unterstützt die Erstellung mehrerer Builds und bewertet, wie jeder Commit Ihre Tests durchläuft und Ihre Produkte beeinflusst. Während des Build-Prozesses wird eine Menge von Binärdateien erzeugt, die, wenn sie nicht korrekt verwaltet werden, in großem Umfang zu binärem Chaos führen kann. Um dies zu überwinden, wird Artifactory nahtlos in Ihren Build-Prozess integriert, um diese Binärdateien zu veröffentlichen und zu verwalten. Über JFrog CLI holt, speichert und veröffentlicht GitLab CI Ihre Abhängigkeiten, erstellten Pakete und Build- Informationen in Artifactory.
Die Build Integration von Artifactory verknüpft automatisch jedes erzeugte Paket mit den entsprechenden Build- und Abhängigkeitsinformationen und sammelt einen neuen Satz von Metadaten, von denen Sie bisher vielleicht noch nicht profitiert haben. Sobald Artifactory mit GitLab CI integriert ist, können Sie Informationen speichern und anzeigen, wie zum Beispiel:
- Build-Informationen und veröffentlichte Module
- Verwendete Abhängigkeiten
- Umgebungsvariablen
- Lizenz-Zusammenfassung
- Links zu Ihrem Issue-Tracker
- Unterschiede zwischen Builds
Die Daten werden in der Artifactory-Datenbank gespeichert, so dass Sie sie auch mit der Artifactory-Abfragesprache abrufen können.
Betten Sie Artifactory in Ihren GitLab-CI-Workflow ein
Das folgende Schritt-für-Schritt-Beispiel zeigt, wie Sie Artifactory in Ihren GitLab-CI-Workflow einbetten. In diesem Beispiel werden wir Maven verwenden. Dieses und weitere Beispiele für Pakettypen sind in GitHub verfügbar.
- Erstellen Sie ein neues Projekt in GitLab.
- Klonen Sie dieses Maven-Beispielprojekt in Ihr GitLab-Repository.
- Konfigurieren Sie die folgenden Artifactory-Anmeldedaten in Ihrem Maven-Projekt unter CI/CD Settings > Secret variables:
ARTIFACTORY_URL: https://artifactory.mycompany.com/artifactory
ARTIFACTORY_USER: admin
ARTIFACTORY_PASS: passwort
MAVEN_REPO_KEY: Name des Ziel-Repositorys in Artifactory - Übertragen Sie die folgende .gitlab-ci.yml -Konfigurationsdatei in das Stammverzeichnis Ihres Projekts. Bei dieser Datei handelt es sich um eine projektspezifische Vorlage, die nach Ihren Wünschen bearbeitet werden kann.
.gitlab-ci.yml sample
# Diese Datei ist eine Vorlage und muss möglicherweise bearbeitet werden, bevor sie in Ihrem Projekt funktioniert. image: maven:latest before_script: # JFrog CLI installieren - curl -fL https://getcli.jfrog.io | sh # Artifactory-Instanz mit JFrog CLI konfigurieren - ./jfrog rt config --url=$ARTIFACTORY_URL --user=$ARTIFACTORY_USER --password=$ARTIFACTORY_PASS - ./jfrog rt c show # Die Umgebungsvariable M2_HOME setzen - export M2_HOME=/usr/share/maven # Den Repository-Namen in der configuration.yml durch den richtigen ersetzen. - sed -i 's,MAVEN_REPO_KEY,'"$MAVEN_REPO_KEY"',g' configuration.yml build: script: # Den MVN-Befehl ausführen - ./jfrog rt mvn "clean install" configuration.yml --build-name=gitlabci-maven-artifactory --build-number=$CI_JOB_ID # Die Umgebungsvariablen erfassen - ./jfrog rt bce gitlabci-maven-artifactory $CI_JOB_ID # Die Build-Informationen an Artifactory übergeben - ./jfrog rt bp gitlabci-maven-artifactory $CI_JOB_ID only: - master
Ein sofortiger Build wird automatisch ausgelöst, nachdem Sie die Konfigurationsdatei übertragen haben und Artifactory mit Ihren Maven-Paketen und zwischengespeicherten Abhängigkeiten ausgefüllt ist.
- Navigieren Sie in der GitLab CI-Benutzeroberfläche zum Job, um den Erstellungsprozess und die Protokolle anzuzeigen.
- Melden Sie sich bei Artifactory an und navigieren Sie zum Artefakt-Repository-Browser , um Ihre veröffentlichten Artefakte in Artifactory anzuzeigen.
- Navigieren Sie zum Build-Browser, um die Build-Informationen anzuzeigen.
Das war's! Sie sind fertig.