Gitlab CI-Tags verstehen

Lesezeit: 4 Minuten

Benutzeravatar von RiddleMeThis
RiddleMeThis

Ich habe die Dokumentation und einige Artikel gelesen und Sie könnten mich für dumm halten, aber dies ist das erste Mal, dass ich mit einem Konzept wie diesem arbeite.

  • Ich habe einen Läufer mit dem Tag „testing“ registriert
  • Tag “testing” in gitlab erstellt
  • verband diesen Läufer mit einem bestimmten Projekt
  • Ich habe auch das gleiche Tag hinzugefügt, zB “testing” in meinem lokalen Repo.

ABER wie genau läuft meine Jobs abhängig von diesen Tags? Sind all diese Operationen notwendig? Wenn ich neuen Code in das Repo drücke, wird die *.yml-Datei trotzdem ausgeführt, soweit ich sie getestet habe.

Was 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, mit welchem ​​Tag der Läufer getriggert wird, sondern ihn zum Beispiel numerische Werte erkennen lassen.

Wie Sie sehen können, bin ich ziemlich verwirrt … Wenn Sie näher erläutern könnten, wie Tags genau funktionieren, damit ich das Konzept verstehen könnte, wäre ich Ihnen sehr dankbar.

Benutzeravatar von sgy
sgy

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

Wenn du deine schreibst .gitlab-ci.ymlkönnen Sie einige Jobs mit dem Tag angeben testing. Wenn ein Runner mit diesem Tag verfügbar ist, übernimmt er den Job.

In Git werden in Ihrem Repository Tags verwendet, um einen bestimmten Commit zu markieren. Es ist oft daran gewöhnt Schild eine Fassung.

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

Beziehen auf 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 drin .gitlab-ci.yml so was:

compile:
    stage: build
    only: git,gitlab,Yaml,taggen,Git-Tag,git,gitlab,Yaml,taggen,Git-Tag
    script:
        - echo Working...
    tags: [testing]    

würde mit der Verwendung eines Läufers beginnen testing Schild.

Nach meinem Verständnis fehlt in Ihren Schritten die Angabe des Tags testing zu deinem Läufer. Gehen Sie dazu in GitLab in Ihr Projekt. Neben
Wikiklicke auf Einstellungen. Gehe zu CI/CD-Pipelines und da hast du deine läufer. Klicken Sie neben seiner Guid auf das Stiftsymbol. Auf der nächsten Seite können die Tags geändert werden.

  • Muss ich beim Erstellen des Läufers ein Tag angeben?

    – Benutzer1933178

    9. November 2017 um 14:45 Uhr

  • Ja, das kann auf der Läuferseite zum Zeitpunkt der Anmeldung erfolgen. Danach benötigen Sie die Rechte für das Projekt, wenn Sie die Konfiguration des Runners (einschließlich Tags) bearbeiten möchten, und die Änderungen werden auf der Seite des Gitlab-Servers vorgenommen. Auf der Seite, die Ihre Läufer für dieses Projekt auflistet, haben Sie ein kleines Bearbeitungssymbol (ein Stift), das Sie zu der Seite führt, auf der Sie die Tags bearbeiten können.

    – Befreiungskraft

    11. Dezember 2017 um 11:00 Uhr

  • Ich habe gitlab runner zum Erstellen von DEB-Dateien verwendet und letztendlich diese Tags verwendet – es akzeptiert auch Regex: tags: – /^.*build_v\..*$/ Wobei sogar der zugewiesene gitlab-runner selbst konfiguriert werden muss um diesen Regex-Typ von TAG zu erfassen. Ich habe dann die Versionsnummer verwendet, um meine Pakete zu bauen. Wenn ich also einen Tag mit „build_vX.YZ“ festgeschrieben habe, hat der Runner eingeschlagen.

    – RiddleMeThis

    18. März 2020 um 10:24 Uhr

Benutzeravatar von Ahmad Abdelghany
Ahmad Abdelgany

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, dann macht es keinen Sinn, Läufer/Jobs zu markieren.

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

job:
  only:
    - tags

Gitlab-Tag: dient zum Identifizieren eines bestimmten Läufers für Ihren Job. Ref
Git-Tag: versioniert den Commit. Ref

Pushen eines neuen Repos

  • würde im Allgemeinen über einen Git-Client wie pycharm erfolgen (aktuelles Beispiel)
  • Code erstellen/aktualisieren
  • begehen
  • Setze ein Git-Tag für den Commit
  • Geben Sie hier die Bildbeschreibung ein
  • Push-to-Remote zusammen mit Tags
  • Geben Sie hier die Bildbeschreibung ein
  • Überprüfen Sie die Protokolle in der Client-App auf z. B. in Pycharm wie folgt:
  • Geben Sie hier die Bildbeschreibung ein
  • Überprüfen Sie nun dasselbe in gitlab->Repo->tags
  • Geben Sie hier die Bildbeschreibung ein
  • in gitlab job kann das gleiche mit überprüft werden Export und das Jobergebnis hätte Folgendes:
  • Geben Sie hier die Bildbeschreibung ein

1440860cookie-checkGitlab CI-Tags verstehen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy