diff --git a/build/yaml/pipelines/build_images.yaml b/build/yaml/pipelines/build_images.yaml new file mode 100644 index 00000000..6f5cd251 --- /dev/null +++ b/build/yaml/pipelines/build_images.yaml @@ -0,0 +1,100 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +# Build Pipeline: Linux Build Images +# Manually rebuilds and publishes the Ubuntu and Alpine images used by Linux CI. + +trigger: none +pr: none + +name: $(date:yyyyMMdd)$(rev:rr) + +parameters: +- name: ImageTag + displayName: Container image tag + type: string + default: latest +- name: RegistryServiceConnection + displayName: ACR Docker service connection + type: string + default: 'VS Diagnostics Dev (ProdDiagBuild)' + +variables: +- name: TeamName + value: ClrInstrumentationEngine + readonly: true +- name: ImageTag + value: ${{ parameters.ImageTag }} + readonly: true + +resources: + repositories: + - repository: 1ESPipelineTemplates + type: git + name: 1ESPipelineTemplates/1ESPipelineTemplates + ref: refs/tags/release + +extends: + template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates + parameters: + pool: + name: AzurePipelines-EO + image: 1ESPT-Ubuntu20.04 + os: linux + + stages: + - stage: BuildImages + displayName: Build Linux images + + jobs: + - job: BuildUbuntuImage + displayName: Build and publish Ubuntu image + + templateContext: + authenticatedContainerRegistries: + - serviceConnection: ${{ parameters.RegistryServiceConnection }} + + outputs: + - output: containerImage + image: proddiagbuild.azurecr.io/clrie-build-ubuntu:$(ImageTag) + targetPath: $(Build.ArtifactStagingDirectory) + artifactName: ubuntu-image + + steps: + - checkout: self + clean: true + + - task: 1ES.BuildContainerImage@1 + displayName: Build Ubuntu image + inputs: + image: proddiagbuild.azurecr.io/clrie-build-ubuntu:$(ImageTag) + path: $(Build.SourcesDirectory)/src/unix/docker/context + dockerfile: $(Build.SourcesDirectory)/src/unix/docker/dockerfiles/build/ubuntu/Dockerfile + enableNetwork: true + useBuildKit: true + + - job: BuildAlpineImage + displayName: Build and publish Alpine image + + templateContext: + authenticatedContainerRegistries: + - serviceConnection: ${{ parameters.RegistryServiceConnection }} + + outputs: + - output: containerImage + image: proddiagbuild.azurecr.io/clrie-build-alpine:$(ImageTag) + targetPath: $(Build.ArtifactStagingDirectory) + artifactName: alpine-image + + steps: + - checkout: self + clean: true + + - task: 1ES.BuildContainerImage@1 + displayName: Build Alpine image + inputs: + image: proddiagbuild.azurecr.io/clrie-build-alpine:$(ImageTag) + path: $(Build.SourcesDirectory)/src/unix/docker/context + dockerfile: $(Build.SourcesDirectory)/src/unix/docker/dockerfiles/build/alpine/Dockerfile + enableNetwork: true + useBuildKit: true