Azure DevOps, YAML-Pipelines freigeben? [geschlossen]


85

Ich verfolge diesen Prozess, um eine YAML-Build-Pipeline für ein .NET Core-Web-API-Projekt zu erstellen:

https://docs.microsoft.com/en-us/azure/devops/pipelines/get-started-yaml?view=vsts

Bei der Veröffentlichung stelle ich fest, dass das (kürzlich umbenannte) Azure DevOps YAML für die Definition von Release-Pipelines anscheinend nicht unterstützt. Ich kann jedoch sehen, dass Bereitstellungsaufgaben definiert wurden, z.

https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-rm-web-app-deployment?view=vsts

Erwarten wir ein Upgrade der Release-Pipelines-Funktionalität, um YAML zu unterstützen, und wenn ja, wann?


In Kürze bei Build 2019: youtube.com/watch?v=ORy3OeqLZlE Mehrstufige Pipelines (und Release YAML) sind jetzt in der Vorschau. Aktivieren Sie es im Menüelement Vorschau-Funktionen.
nullforce

2
Könnte mir jemand helfen zu verstehen, warum diese Frage nicht zum Thema gehört? Für mich scheint es eine gute Frage für den Stackoverflow zu sein.
Tobske

Antworten:


58

Zum Zeitpunkt des Schreibens dieser Antwort spiegelt die Funktionszeitleiste wider, dass Yaml-Veröffentlichungen im dritten Quartal 2018 erscheinen.

https://docs.microsoft.com/en-us/azure/devops/release-notes/

Update: Dies wurde einige Male gestoßen. Es wird empfohlen, die folgenden Kommentare zu überprüfen, da die Leute Updates bereitgestellt haben, sobald sie diese finden.

Aktualisieren

Laut Kommentaren ist dies jetzt möglich: https://devblogs.microsoft.com/devops/whats-new-with-azure-pipelines/ . Folgendes wird aus dem Artikel kopiert und eingefügt und anhand verschiedener Stufen demonstriert:

stages:
- stage: Build
  jobs:
  - job: Build
    pool:
      vmImage: 'Ubuntu-16.04'
    continueOnError: true
    steps:
    - script: echo my first build job
- stage: Deploy
  jobs:
    # track deployments on the environment
  - deployment: DeployWeb
    pool:
      vmImage: 'Ubuntu-16.04'
    # creates an environment if it doesn’t exist
    environment: 'smarthotel-dev'
    strategy:
      # default deployment strategy
      runOnce:
        deploy:
          steps:
          - script: echo my first deployment

9
Jetzt ist es in den 2018 Q4 Features.
Sschoof


6
Ich habe gestern über Twitter Kontakt aufgenommen. Derzeit werden an YAML-Release-Definitionen gearbeitet, um diese bis Ende März in die private Vorschau aufzunehmen. Vollständiger Thread unter twitter.com/gopinach/status/1088320931745935360?s=21
rh072005

5
Das neueste Workitem
antmeehan


6

Die Erfahrung beim Erstellen von YAML- Build- Pipelines wird in der Vorschau angezeigt. (Heute ist der 04.12.2018)

YAML für Release- Pipelines scheint noch weit entfernt zu sein: 2019 Q2

Vorschau-Funktionen können in Ihrem Profil wie folgt aktiviert werden:

Profilmenü

YAML-Funktion

BEARBEITEN : Wie nullforce in Kommentaren hervorhebt, ermöglicht dies nur eine YAML-Erfahrung für das Erstellen von Pipelines und nicht für das Freigeben von Pipelines.

UPDATE (2019-05-16): Nach dem "Build 2019" von Microsoft sollte die vollständige YAML-Erfahrung für Build und Bereitstellung jetzt in derselben YAML-Pipelines-Datei möglich sein.


3
Diese Frage bezieht sich auf Release-Pipelines, nicht auf Build-Pipelines. Die von Ihnen angegebene Vorschaufunktion aktiviert nur die Build-Pipeline-YAML.
nullforce

@nullforce Vielen Dank, ich habe Ihre Korrektur zu meiner Antwort hinzugefügt und werde versuchen, sie auf dem neuesten Stand zu halten, wenn dies für Release-Pipelines aktiviert ist oder wenn yaml auch aus der Vorschau herauskommt.
Jim Wolff

1
Es ist immer noch nicht verfügbar.
ATL_DEV

@ATL_DEV Könnten Sie einen Status erläutern oder auf Ressourcen zu diesem Thema verweisen, damit ich die Antwort korrigieren kann? Für mich sieht es so aus, als wäre es verfügbar: docs
Jim Wolff

@ Jim Wolff-- Microsoft sind Lügner! Die Release- und Deployment-Teile können nur über die beschissene Benutzeroberfläche konfiguriert werden.
ATL_DEV

5

Das Produktteam arbeitet daran. Sie können das Update durch verfolgen Release Notes .


1
"The Product Team" hat nach 1 Jahr nichts mehr getan. Die Benutzeroberfläche von Azure Dev Ops ist immer noch schrecklich und die Yaml-Unterstützung für die Bereitstellung ist trotz aller leeren Versprechen immer noch nicht vorhanden. Die Dokumentation ist nicht vorhanden und über das Internet verteilt. Azure Dev Ops ist ein wahrer Traum! Microsoft sollte etwas anderes zu tun finden,
ATL_DEV

Nur aus Gründen der technischen Genauigkeit - obwohl dieser Kommentar im November 2019 veröffentlicht wurde und besagt, dass die YAML-Unterstützung für die Bereitstellung "immer noch nicht vorhanden" ist, wurde sie im Mai 2019 tatsächlich zu Azure DevOps (kein Speicherplatz) hinzugefügt. Weitere Antworten und Kommentare bekommen mehr dazu. Ich wollte nur sicherstellen, dass jemand, der dies liest, die falsche Idee hat.
MikeBaz - MSFT

Hallo, kannst du diese Frage beantworten, Starian? stackoverflow.com/questions/64546693/…
alansmith4785

4

Ich bin gerade dabei, so etwas richtig zu machen, aber ich verwende die aktuellen REST-APIs. Was ich mache, ähnelt dem, was ich hier dokumentiert habe ( Wie importiere ich eine Release-Definition in VSTS? ). Grundsätzlich speichere ich eine JSON Release Pipeline-Datei mit Vorlagen im Quellcode-Repository mit variablen Platzhaltern und einer eingebetteten Versionsnummer. A haben dann ein PowerShell-Skript, das die Azure DevOps aufruft (das ist ein langes Wort, ich habe es vorgezogen, VSTS einzugeben, vielleicht fange ich an, AD einzugeben)

  • REST-APIs zur Überprüfung der Release-Pipeline sind vorhanden - funktionieren
  • Erstellen, wenn es nicht existiert - funktioniert
  • Vergleichen Sie eingebettete Versionen und aktualisieren Sie sie und falls erforderlich (ich stecke hier fest, aber ich werde sie lösen und den Fehler zurückgeben, dass sich die aktualisierte Pipeline nicht geändert hat, obwohl ich sie geändert habe.)

Ich möchte, dass dies während der Build-Pipeline ausgeführt wird, damit ich nicht mehr viele ähnliche Release-Pipelines manuell ändern muss. Ich würde es vorziehen, wenn dies auch eine YAML-Datei wäre, aber das ist es, was ich heute habe. Ich hoffe das hilft.


1
Ich stecke fest und habe meine Arbeit am UPDATE-Prozess eingestellt. Warum? Die json-Vorlage für die Release-Definition enthält eine ID für jeden Erstellungsschritt. Die IDs müssen eine bestimmte Nummer sein, wenn die Release-Pipeline erstellt wird. Die ID-Nummer wird nach dem Erstellen geändert. Wenn Sie die Release-Pipeline AKTUALISIEREN, können Sie die "neuen" Stage-ID-Nummern nicht mehr verwenden (sie sind beim erstmaligen Erstellen einer Release-Pipeline reserviert), sondern Sie müssen stattdessen die jetzt gültige Staged-ID verwenden, die alles Mögliche sein kann.
Antebios

Der eigentliche Prozess sollte also sein: Verwenden Sie zum Erstellen eines Prozesses eine Vorlage. Laden Sie für den Aktualisierungsprozess die Release-Definition herunter und vergleichen Sie sie mit der Vorlage und aktualisieren Sie die heruntergeladene Release-Definition. Aktualisieren Sie diese dann wieder auf VSTS. Wütend! Das heißt, ich muss meinen eigenen Vergleichsprozess und eine Fehlerprüfung schreiben.
Antebios

Tatsächlich können Sie für eine neue Release-Definition (POST) die idEigenschaft ignorieren - idfür das Release-Def-Objekt und in allen environmentObjekten kann sie ignoriert werden - die Einstellung der rankEigenschaft sollte ausreichen (zusammen mit anderen erforderlichen) - der POST-Aufruf sollte automatisch erstellt werden die IDs und kehren im Antwortobjekt zurück. Sobald Release Definition erstellt wird, um alle Definitionen in Ihrem org bekommen Sie ein tun können , LISTauf Release - Definitionen - GET Aufruf dokumentiert ist hier
obfuscate

-4

Pipelines bestehen aus einem oder mehreren Jobs und können Ressourcen und Variablen enthalten. Jobs bestehen aus einem oder mehreren Schritten sowie einigen jobspezifischen Daten. Schritte können Aufgaben, Skripte oder Verweise auf externe Vorlagen sein. Dies spiegelt sich in der Struktur der YAML-Datei wider. Bitte besuchen Sie hier für Details


5
Fügen Sie Ihren Posts keine Signaturen hinzu. Sie könnten als Spam angesehen werden.
Zoe
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.