Concourse Lab Creation
Testumgebung
Ausführen von Concourse
Mit Docker-Compose
Diese Docker-Compose-Datei vereinfacht die Installation, um einige Tests mit Concourse durchzuführen:
Du kannst das Befehlszeilentool fly
für dein Betriebssystem von der Website unter 127.0.0.1:8080
herunterladen.
Mit Kubernetes (Empfohlen)
Du kannst Concourse einfach in Kubernetes (zum Beispiel in minikube) mithilfe des Helm-Charts bereitstellen: concourse-chart.
Nachdem Sie die Concourse-Umgebung generiert haben, können Sie ein Geheimnis generieren und dem SA, der in Concourse Web läuft, Zugriff auf K8s-Secrets geben:
Erstellen Sie eine Pipeline
Eine Pipeline besteht aus einer Liste von Jobs, die eine geordnete Liste von Schritten enthalten.
Schritte
Es können verschiedene Arten von Schritten verwendet werden:
Der
task
Schritt führt eine Aufgabe aus.Der
get
Schritt ruft eine Ressource ab.Der
put
Schritt aktualisiert eine Ressource.Der
set_pipeline
Schritt konfiguriert eine Pipeline.Der
load_var
Schritt lädt einen Wert in eine lokale Variable.Der
in_parallel
Schritt führt Schritte parallel aus.Der
do
Schritt führt Schritte in Sequenz aus.Der
across
Schrittmacher führt einen Schritt mehrmals aus; einmal für jede Kombination von Variablenwerten.Der
try
Schritt versucht, einen Schritt auszuführen und hat Erfolg, auch wenn der Schritt fehlschlägt.
Jeder Schritt in einem Jobplan wird in seinem eigenen Container ausgeführt. Sie können alles ausführen, was Sie möchten, innerhalb des Containers (z. B. meine Tests ausführen, dieses Bash-Skript ausführen, dieses Image erstellen usw.). Wenn Sie also einen Job mit fünf Schritten haben, erstellt Concourse fünf Container, einen für jeden Schritt.
Daher ist es möglich, den Typ des Containers anzugeben, in dem jeder Schritt ausgeführt werden soll.
Einfaches Pipeline-Beispiel
Überprüfen Sie 127.0.0.1:8080, um den Pipeline-Fluss zu sehen.
Bash-Skript mit Ein- und Ausgabepipeline
Es ist möglich, die Ergebnisse einer Aufgabe in einer Datei zu speichern und anzugeben, dass es sich um eine Ausgabe handelt, und dann den Eingang der nächsten Aufgabe als Ausgabe der vorherigen Aufgabe anzugeben. Was Concourse tut, ist, das Verzeichnis der vorherigen Aufgabe in der neuen Aufgabe einzuhängen, wo Sie auf die von der vorherigen Aufgabe erstellten Dateien zugreifen können.
Auslöser
Sie müssen die Jobs nicht jedes Mal manuell auslösen, wenn Sie sie ausführen müssen, Sie können sie auch programmieren, um jedes Mal ausgeführt zu werden:
Eine gewisse Zeit vergeht: Zeit-Ressource
Bei neuen Commits im Hauptzweig: Git-Ressource
Neue PRs: Github-PR-Ressource
Das neueste Abbild Ihrer App abrufen oder pushen: Registry-Abbild-Ressource
Überprüfen Sie ein YAML-Pipeline-Beispiel, das bei neuen Commits im Master ausgelöst wird unter https://concourse-ci.org/tutorial-resources.html
Last updated