Azure DevOps, pipeline di rilascio YAML? [chiuso]


87

Sto seguendo questo processo per creare una pipeline di compilazione YAML per un progetto API Web .NET Core:

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

Quando si tratta di rilasciarlo, noto che Azure DevOps (recentemente rinominato) non sembra supportare YAML per la definizione delle pipeline di rilascio. Tuttavia, posso vedere che le attività di distribuzione sono state definite, ad esempio:

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

Ci aspettiamo un aggiornamento alla funzionalità delle pipeline di rilascio per supportare YAML e, in caso affermativo, quando?


Presto, alla Build 2019: youtube.com/watch?v=ORy3OeqLZlE pipeline multistadio (e versione YAML) è ora in anteprima. Abilitalo nella voce di menu Funzioni di anteprima.
nullforce

2
Qualcuno potrebbe aiutarmi a capire perché questa domanda è fuori tema? Per me sembra una buona domanda per stackoverflow.
Tobske

Risposte:


59

Al momento della stesura di questa risposta, la cronologia delle funzionalità riflette le versioni di yaml in arrivo nel terzo trimestre del 2018.

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

Aggiornamento: questo è stato modificato alcune volte. Si consiglia di controllare i commenti di seguito poiché le persone hanno fornito aggiornamenti non appena li trovano.

Aggiornare

Secondo i commenti, ora è possibile: https://devblogs.microsoft.com/devops/whats-new-with-azure-pipelines/ . Quanto segue viene copiato e incollato dall'articolo e dimostra l'utilizzo di varie fasi:

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
Ora è nelle funzionalità Q4 2018.
sschoof

4
Esiste un elemento di lavoro per tenere traccia di questo dev.azure.com/mseng/Azure%20DevOps%20Roadmap/_workitems/edit/…
sschoof

6
Ho contattato via Twitter ieri. Le definizioni di rilascio di YAML sono in fase di elaborazione con l'obiettivo di renderle disponibili in anteprima privata entro la fine di marzo.
Discussione

5
Ultimo elemento di lavoro che tiene
antmeehan


6

L' esperienza di creazione della pipeline di build YAML è in anteprima. (oggi è il 04/12/2018)

YAML per le pipeline di rilascio sembra essere ancora lontano: 2019 Q2

Le funzionalità di anteprima possono essere abilitate dal tuo profilo in questo modo:

menu profilo

Caratteristica YAML

EDIT: come sottolinea nullforce nei commenti, questo abilita solo un'esperienza YAML per costruire pipeline e non rilasciare pipeline.

AGGIORNAMENTO (2019-05-16): dopo la "Build 2019" di Microsoft, l'esperienza YAML completa sia per la compilazione che per la distribuzione dovrebbe ora essere possibile nello stesso file delle pipeline YAML.


3
Questa domanda riguarda le pipeline di rilascio, non le pipeline di compilazione. La funzione di anteprima che hai indicato attiva solo la pipeline di compilazione YAML.
nullforce

@nullforce Grazie, ho aggiunto la tua correzione alla mia risposta e cercherò di mantenerla aggiornata se è abilitata per le pipeline di rilascio o quando yaml esce anche dall'anteprima.
Jim Wolff

1
Non è ancora disponibile.
ATL_DEV

@ATL_DEV potresti elaborare uno stato o collegarti a risorse relative a questo, così posso correggere la risposta. A me sembra che sia disponibile: documenti
Jim Wolff

@ Jim Wolff - Microsoft è bugiardo! Le parti di rilascio e distribuzione possono essere configurate solo tramite la sua schifosa interfaccia utente.
ATL_DEV

5

Il team del prodotto ci sta lavorando. Puoi tenere traccia dell'aggiornamento tramite le note sulla versione .


1
"The Product Team" non ha fatto nulla dopo 1 anno. L'interfaccia utente di Azure Dev Ops è ancora orribile e il supporto yaml per la distribuzione non è ancora disponibile nonostante tutte le promesse vuote. La documentazione è inesistente ed è sparsa in tutta la rete, Azure Dev Ops è un incubo da usare! Microsoft dovrebbe trovare qualcos'altro da fare,
ATL_DEV

Solo per motivi di accuratezza tecnica, nonostante quel commento sia stato pubblicato a novembre 2019 dicendo che il supporto YAML per la distribuzione "non è ancora disponibile", è stato effettivamente aggiunto ad Azure DevOps (senza spazio) a maggio 2019. Altre risposte e i commenti approfondiscono questo aspetto. Volevo solo assicurarmi che qualcuno che leggesse questo avesse un'idea sbagliata.
MikeBaz - MSFT

4

Sto facendo qualcosa di simile proprio in questo momento, ma sto usando le attuali API REST. Quello che sto facendo è qualcosa di simile a quello che ho documentato qui ( come si importa una definizione di rilascio in VSTS? ). Fondamentalmente sto salvando un file della pipeline di rilascio JSON basato su modelli nel repository del codice sorgente con segnaposto variabili e un numero di versione incorporato. A quindi avere uno script PowerShell che chiama Azure DevOps (è una parola lunga, ho preferito digitare VSTS, forse inizierò a digitare AD)

  • Le API REST per il controllo della pipeline di rilascio esistono - funziona
  • Crea se non esiste - funziona
  • Confronta le versioni incorporate e aggiorna e se necessario (sono bloccato qui, ma lo risolverò, restituendo l'errore che la pipeline in fase di aggiornamento non è cambiata anche se l'ho modificata.)

Voglio che questo venga eseguito durante la pipeline di build in modo da non dover più modificare manualmente molte pipeline di rilascio simili. Preferirei che anche questo fosse un file YAML, ma questo è quello che ho oggi. Spero che possa aiutare.


1
Sono bloccato e ho interrotto il mio lavoro sul processo di AGGIORNAMENTO. Perché? Il modello json della definizione di rilascio ha un ID per ogni fase di compilazione. Gli ID devono essere un numero specifico quando viene creata la pipeline di rilascio. Il numero ID viene modificato dopo la creazione. Quindi, quando si AGGIORNA la pipeline di rilascio non è più possibile utilizzare i "nuovi" numeri ID di fase (sono riservati durante la creazione iniziale di una pipeline di rilascio), ma è invece necessario utilizzare l'ID di fase ora valido che potrebbe essere qualsiasi cosa.
Antebios

Quindi il processo effettivo dovrebbe essere: Per creare il processo usa il modello. Per il processo di aggiornamento, scaricare la definizione della versione e confrontarla con il modello e aggiornare la definizione della versione scaricata, quindi aggiornare quella di nuovo a VSTS. Whew! Ciò significa che devo scrivere il mio processo di confronto e il controllo degli errori.
Antebios

infatti, per una nuova definizione di rilascio (POST), è possibile ignorare la idproprietà - idper l'oggetto release def e in tutti gli environmentoggetti può essere ignorato - l'impostazione della rankproprietà dovrebbe essere sufficiente (insieme ad altre richieste) - la chiamata POST dovrebbe creare automaticamente gli ID e restituire nell'oggetto risposta. Una volta creata la definizione di rilascio, per ottenere tutte le definizioni nella tua organizzazione puoi fare una LISTdefinizione di rilascio - la chiamata GET è documentata qui
offuscare il

-5

Le pipeline sono costituite da uno o più lavori e possono includere risorse e variabili. I lavori sono composti da uno o più passaggi più alcuni dati specifici del lavoro. I passaggi possono essere attività, script o riferimenti a modelli esterni. Ciò si riflette nella struttura del file YAML. Si prega di visitare qui per i dettagli


5
Non aggiungere firme ai tuoi post; potrebbero essere considerati spam.
Zoe
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.