it-swarm.com.de

Grundlegendes zu Gitlab CI-Tags

Ich habe Dokumentation, einige Artikel gelesen und Sie mögen mich als dumm bezeichnen, aber ich arbeite zum ersten Mal mit einem Konzept wie diesem.

  • Ich habe einen Läufer mit dem Tag "testing" registriert.
  • tag "testing" in gitlab erstellt
  • band diesen Läufer mit besonderem Projekt
  • Ich habe auch den gleichen Tag hinzugefügt, z. "Testen" in meinem lokalen Repo.

ABER wie genau sind meine Jobs von diesen Tags abhängig? Sind all diese Vorgänge notwendig? Wenn ich neuen Code zum Repository schiebe, wird die * .yml-Datei sowieso ausgeführt, soweit ich dies getestet habe.

Was ist also, wenn ich build nur ausführen möchte, wenn ich eine Version in einem Commit definiere?

IDK ...

   git commit --tags "v. 2.0" -m "this is version 2.0" (probably not right)

Aber natürlich sollte es universell sein, damit ich nicht immer sagen muss, welches Tag verwendet werden soll, um den Läufer auszulösen, sondern ihn beispielsweise numerische Werte erkennen lassen soll.

Wie Sie sehen, bin ich ziemlich verwirrt ... Wenn Sie herausfinden könnten, wie genau Tags funktionieren, um das Konzept zu verstehen, wäre ich sehr dankbar.

18
RiddleMeThis

Tags für GitLab CI und Tags für Git sind zwei verschiedene Konzepte.

Wenn Sie Ihren .gitlab-ci.yml Schreiben, können Sie einige Jobs mit dem Tag testing angeben. Wenn ein Läufer mit diesem Tag verfügbar ist, nimmt er den Auftrag auf.

In Git werden in Ihrem Repository Tags verwendet, um ein bestimmtes Commit zu markieren. Es wird oft verwendet, um tag eine Version.

Die beiden Konzepte können verwechselt werden, wenn Sie Tags (in Git) verwenden, um Ihre Pipeline in GitLab CI zu starten. In Ihrem .gitlab-ci.yml Können Sie den Abschnitt only mit tags angeben.

Siehe GitLab-Dokumentation für Tags und nur .

Ein Beispiel ist, wenn Sie ein Tag mit git pushen:

$ git tag -a 1.0.0 -m "1.0.0"
$ git Push Origin 1.0.0

Und ein Job in .gitlab-ci.yml Wie folgt:

compile:
    stage: build
    only: [tags]
    script:
        - echo Working...
    tags: [testing]    

würde anfangen, einen Läufer mit dem Tag testing zu verwenden.

Nach meinem Verständnis fehlt in Ihren Schritten die Angabe des Tags testing für Ihren Läufer. Gehen Sie dazu in GitLab in Ihr Projekt. Klicken Sie neben Wiki auf Einstellungen . Gehen Sie zu CI/CD-Pipelines und dort haben Sie Ihre Läufer. Klicken Sie neben "Guid" auf das Stiftsymbol. Auf der nächsten Seite können die Tags geändert werden.

38
elbaid

Sind all diese Operationen notwendig?

Nein, wenn Sie nur einen Läufer haben oder wenn Sie viele haben, sich aber nicht darum kümmern, welcher Läufer Ihren Job ausführt, ist es sinnlos, Läufer/Jobs zu markieren.

Was ist, wenn ich Build nur ausführen möchte, wenn ich eine Version in einem Commit definiere?

job:
  only:
    - tags
3