1
votes

Comment les artefacts de build sont gérés dans le pipeline Azure DevOps?

Je suis en train de configurer un nouveau pipeline Azure DevOps pour ma webapp. Je peux voir que les artefacts de construction sont enregistrés dans un chemin appelé $ Build.ArtifactStagingDirectory . Où cette variable de chemin pointe-t-elle et combien de temps puis-je accéder à mon artefact?

De plus, les versions d'Azure DevOps (gardent-elles une trace de tous les artefacts créés au fil du temps) les artefacts créés? Si non, comment versionner mes artefacts de construction?


0 commentaires

3 Réponses :


1
votes

Vous devez publier artefacts utilisant la tâche car par défaut ils ne sont pas publiés. Si vous utilisez yaml, ajoutez simplement

# Publish Build Artifacts
# Publish build artifacts to Azure Pipelines/TFS or a file share
- task: PublishBuildArtifacts@1
  inputs:
    #pathtoPublish: '$(Build.ArtifactStagingDirectory)' 
    #artifactName: 'drop' 
    #publishLocation: 'Container' # Options: container, filePath
    #targetPath: # Required when publishLocation == FilePath
    #parallel: false # Optional
    #parallelCount: # Optional

Il y a une configuration pour combien de temps conserver ces artefacts dont je me souviens par défaut sont 30 jours et 3 ou 5 dernières versions


2 commentaires

Merci @ volodymyr-bilyachat. Pourriez-vous s'il vous plaît expliquer où se trouve ce chemin (Build.ArtifactStagingDirectory)?


@LeoVarghese cet emplacement est sur ce serveur qui exécute votre build, c'est pourquoi vous devez publier ce dossier pour qu'il soit disponible comme artefacts



5
votes

Dans l'agent, il y a 3 dossiers: a , b et s . La variable $ (Build.ArtifactStagingDirectory) pointe vers le dossier a ( a rtifacts), le chemin est donc c: \ agent \ _work \ 1 \ a (si l'emplacement de l'agent est c: \ agent , le 1 peut également être un autre numéro, en fonction du nombre de builds, ce nombre est incrémentiel).

Les artefacts n'y sont pas enregistrés! lorsque vous créez le code, tout le code et les artefacts existent dans le dossier s ( s ources), la meilleure pratique consiste à copier uniquement les artefacts dans le dossier a < / code> puis utilisez la tâche «Publier les artefacts de build», dans cette tâche, vous prenez les artefacts du dossier a et les placez sur le stockage Azure DevOps ou dans votre partage de fichiers (si agent).

À partir du stockage / partage de fichiers Azure DevOps, les artefacts existent conformément à votre stratégie de rétention.

Si vous enregistrez les artefacts dans Azure DevOps, vous pouvez accéder à vos artefacts à partir de la page de résumé de compilation ou créer un pipeline de versions. si vous les enregistrez dans un partage de fichiers, vous pouvez simplement y accéder ou dans le pipeline de publication.


1 commentaires

ou dans votre partage de fichiers (si vous utilisez un agent auto-hébergé) , vous devez utiliser tâche de copie de fichier pour mettre l'artefact sur le partage de fichiers. Par défaut, la tâche publier un artefact fait de même pour les agents hébergés ou privés