У меня есть этот конвейер Azure Devops ci / cd с использованием yaml. Мой ямл имеет два этапа CI и CD. Мой этап CI имеет одно задание под названием BuildandDeploy . Этап CD имеет одну задачу развертывания. Я использую универсальные артефакты для публикации и загрузки того же самого. На этапе CD я использую задачу UniversalPackages
devops для загрузки артефакта. Задача имеет входную переменную с именем vstsPackageVersion , которая является версией пакета, показанной в универсальных артефактах. Мне известны две другие переменные, которые можно использовать $(Build.BuildId)
и $(Build.BuildNumber)
. В качестве временной работы я жестко программирую версию пакета для универсального артефакта.
Мне не удалось загрузить артефакт с помощью одной из встроенных переменных. Поскольку CI и CD находятся в одном конвейере, есть ли способ сохранить и получить пакетную версию артефакта? Есть ли такой идентификатор, как latest
, который я мог бы использовать, чтобы получить последний артефакт из универсального пакета.
# specific branch build with batching
trigger:
batch: true
branches:
include:
- master
stages:
- stage: CI
jobs:
- job: BuildAndPublish
pool:
vmImage: 'Ubuntu-16.04'
steps:
-
script: |
docker build -t $(dockerId).azurecr.io/$(imageName):$(version) .
docker login -u $(dockerId) -p $(pswd) $(dockerId).azurecr.io
docker push $(dockerId).azurecr.io/$(imageName):$(version)
- task: Bash@3
displayName: Initialize Helm Client - create local repo
inputs:
targetType: 'inline'
script: '
helm init --client-only
'
- task: HelmDeploy@0
displayName: Package helm chart
inputs:
connectionType: 'Kubernetes Service Connection'
command: 'package'
chartPath: 'my-helm-dir'
- task: UniversalPackages@0
displayName: Publish helm package to my-company-artifacts
inputs:
command: 'publish'
publishDirectory: '$(Build.ArtifactStagingDirectory)'
feedsToUsePublish: 'internal'
vstsFeedPublish: '$(my-feed-guid)'
vstsFeedPackagePublish: 'my-artifact-name'
versionOption: patch
packagePublishDescription: 'My helm package descrition'
- stage: CD
jobs:
- deployment: DeployJob
displayName: Deploy Job
pool:
vmImage: Ubuntu-16.04
environment: dev
strategy:
runOnce:
deploy:
steps:
- task: UniversalPackages@0
displayName: 'Universal download'
inputs:
command: download
vstsFeed: '$(my-feed-name)'
vstsFeedPackage: 'my-artifact-name'
vstsPackageVersion: 0.0.32
- task: ExtractFiles@1
displayName: 'Extract files '
inputs:
archiveFilePatterns: '*.tgz'
destinationFolder: 'my-folder'
cleanDestinationFolder: true