Wie Sie eine bestimmte Aufgabe in gitlab CI
Stehen wir vor einem problem, wo wir brauchen, um eine bestimmte Aufgabe in gitlab CI. Wir derzeit nicht wissen, wie dieses problem zu lösen. Wir haben multitple definierten Aufträge in unserem .gitlab-ci.yml
aber wir brauchen Sie nur zu führen Sie eine einzelne Aufgabe innerhalb unserer Rohrleitungen. Wie konnten wir nur führen Sie einen job z.B. job1
oder job2
? Wir können nicht tags
oder branches
als software-Schalter, die in unserer Umwelt.
.gitlab-ci.yml:
before_script:
- docker info
job1:
script:
- do something
job2:
script:
- do something
- finden Sie die Lösung? Ich habe ähnliche situation, ich brauche nur ein Umwelt-cleanup-job ausgelöst werden durch den Zeitplan.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wir vor dem gleichen problem, in der Vergangenheit und ich bin zu teilen mit Ihnen unsere Lösung.
Bemerkung
when: manual
wird immer ALLE Ihre Aufträge in der pipeline., Was ich bin angenommen, bevor Sie fortfahren
job 1
,job 2
undjob 4
aber NICHTjob3
.job 3
in einem bestimmten Fall oder nur, wenn Sie sich entscheiden, um es auszuführen.Die Idee ist
helloTag.1
,helloTag.2
,helloTag.3
... etc.Wenn wir in
develop
odermaster
(oder anderen Zweig), wir haben 3 Stufen (Stufe 1, Stufe 2, Stufe 4)Beachten Sie, wie die 3. Aufgabe ist nicht in der pipeline
Gehen Sie auf "Repository" --> "Tags" --> "der Neue tag"
Geben Sie dem tag einen Namen, die viel in Ihrem regulären Ausdruck
Wenn wir in einem tag mit einem Namen, der beginnt mit "helloTag.", wir haben 1 Bühne (Bühne 3)
Beachten Sie, wie die anderen Stufen sind nicht vorhanden, hier
Beispiel
.gitlab-ci
DateiHoffe, dass dies hilft Ihnen.
Fügen Sie einfach ein
when: manual
zu den jobs, die Sie nicht wollen, zu laufen.Diese jobs immer noch in Ihrer pipeline, wird aber nicht ausgeführt werden, es sei denn, jemand "manuell" startet Sie über das web-interface, daher der name.
Hier gibt ' s mehr Infos dazu: https://docs.gitlab.com/ce/ci/yaml/README.html#when
Wenn Sie auf der Suche nach etwas mehr "programmierbar", lassen Sie uns sagen, führen Sie entweder
job1
oderjob2
je auf einem branch-Namen oder ein tag, dann sollten Sie einen Blick auf dieonly
undexcept
keywords: https://docs.gitlab.com/ce/ci/yaml/README.html#only-and-exceptKönnen Sie eine gitlab variable expression mit nur/außer wie unten, und übergeben Sie die variable in der pipeline-Ausführung als erforderlich.
Diesem Beispiel standardmäßig laufen beide jobs, aber wenn Sie überschritten wird "true" für "firstJobOnly" es läuft nur die erste Aufgabe.
> Derzeit scheint es nicht möglich zu sein, mit GitLab CI zu haben, die andere software schaltet als
tags
oderbranches
wie in den anderen Antworten.Wir schließlich wechselte zu einem anderen "echten" CI durch zu viele Einschränkungen auf GitLab CI. GitLab CI ist unfelixble, wenn Sie einige benutzerdefinierte Aufträge in verschiedenen Verfahren. Ich wirklich schätzen die beiden Antworten hier. Ich bin sicher, Sie wird helfen, andere Benutzer zu verwalten, dieses Zeug. Leider in unserem Fall konnten wir nicht verwenden
tags
,commit messages
oderbranches
als software-Schalter.Sind wir noch auf der Suche nach einer Antwort auf diese. Fühlen Sie sich frei, um einen anderen Ansatz um dieses problem zu lösen. Ich werde markieren Sie die richtige Antwort, sobald es trifft. Auch ein Kopfgeld auf diese Frage kam keine richtige Antwort.