diff --git a/eng/pipeline/pr-outerloop-pipeline.yml b/eng/pipeline/pr-outerloop-pipeline.yml index ebba7ae920..45fc874377 100644 --- a/eng/pipeline/pr-outerloop-pipeline.yml +++ b/eng/pipeline/pr-outerloop-pipeline.yml @@ -24,6 +24,8 @@ resources: image: golangpublicimages.azurecr.io/go-infra-images/prereqs:cbl-mariner-1.0.20211027-20211201-0cccc22 - container: mariner1arm64 image: golangpublicimages.azurecr.io/go-infra-images/prereqs:cbl-mariner-arm64-1.0-20220314-a003148 + - container: azurelinux3 + image: mcr.microsoft.com/microsoft-go/infra-images:azurelinux-3.0-amd64-default-20241024144202-a3a1203 stages: - template: stages/go-builder-matrix-stages.yml diff --git a/eng/pipeline/pr-pipeline.yml b/eng/pipeline/pr-pipeline.yml index 8a511b43bf..ce50b02581 100644 --- a/eng/pipeline/pr-pipeline.yml +++ b/eng/pipeline/pr-pipeline.yml @@ -21,6 +21,8 @@ resources: image: golangpublicimages.azurecr.io/go-infra-images/prereqs:cbl-mariner-1.0.20211027-20211201-0cccc22 - container: mariner1arm64 image: golangpublicimages.azurecr.io/go-infra-images/prereqs:cbl-mariner-arm64-1.0-20220314-a003148 + - container: azurelinux3 + image: mcr.microsoft.com/microsoft-go/infra-images:azurelinux-3.0-amd64-default-20241024144202-a3a1203 stages: - template: stages/go-builder-matrix-stages.yml diff --git a/eng/pipeline/rolling-innerloop-pipeline.yml b/eng/pipeline/rolling-innerloop-pipeline.yml index cc58fed09f..85ba25c14b 100644 --- a/eng/pipeline/rolling-innerloop-pipeline.yml +++ b/eng/pipeline/rolling-innerloop-pipeline.yml @@ -44,6 +44,8 @@ extends: image: golangpublicimages.azurecr.io/go-infra-images/prereqs:cbl-mariner-1.0.20211027-20211201-0cccc22 mariner1arm64: image: golangpublicimages.azurecr.io/go-infra-images/prereqs:cbl-mariner-arm64-1.0-20220314-a003148 + azurelinux3: + image: mcr.microsoft.com/microsoft-go/infra-images:azurelinux-3.0-amd64-default-20241024144202-a3a1203 stages: - template: stages/go-builder-matrix-stages.yml diff --git a/eng/pipeline/rolling-pipeline.yml b/eng/pipeline/rolling-pipeline.yml index fd7cb59ed1..e360909614 100644 --- a/eng/pipeline/rolling-pipeline.yml +++ b/eng/pipeline/rolling-pipeline.yml @@ -37,6 +37,8 @@ extends: image: golangpublicimages.azurecr.io/go-infra-images/prereqs:cbl-mariner-1.0.20211027-20211201-0cccc22 mariner1arm64: image: golangpublicimages.azurecr.io/go-infra-images/prereqs:cbl-mariner-arm64-1.0-20220314-a003148 + azurelinux3: + image: mcr.microsoft.com/microsoft-go/infra-images:azurelinux-3.0-amd64-default-20241024144202-a3a1203 stages: - template: stages/go-builder-matrix-stages.yml diff --git a/eng/pipeline/stages/builders-to-stages.yml b/eng/pipeline/stages/builders-to-stages.yml index f3e14134e6..f5d29d3ede 100644 --- a/eng/pipeline/stages/builders-to-stages.yml +++ b/eng/pipeline/stages/builders-to-stages.yml @@ -5,7 +5,7 @@ # This template expands a list of builders into a list of jobs. parameters: - # [] of { id, os, arch, hostarch, config, distro?, experiment? } + # [] of { id, os, arch, hostarch, config, distro?, experiment?, broken? } builders: [] # If true, include a signing stage+job that depends on all 'buildandpack' builder jobs finishing. sign: false diff --git a/eng/pipeline/stages/go-builder-matrix-stages.yml b/eng/pipeline/stages/go-builder-matrix-stages.yml index 0c4cc12d15..60e3b51638 100644 --- a/eng/pipeline/stages/go-builder-matrix-stages.yml +++ b/eng/pipeline/stages/go-builder-matrix-stages.yml @@ -77,9 +77,11 @@ stages: - { os: linux, arch: amd64, config: devscript } - { os: linux, arch: amd64, config: test } - { os: linux, arch: amd64, config: test, distro: ubuntu } + - { os: linux, arch: amd64, config: test, distro: azurelinux3 } - { experiment: opensslcrypto, os: linux, arch: amd64, config: test } - { experiment: opensslcrypto, os: linux, arch: amd64, config: test, fips: true } - { experiment: opensslcrypto, os: linux, arch: amd64, config: test, distro: ubuntu } + - { experiment: opensslcrypto, os: linux, arch: amd64, config: test, distro: azurelinux3, broken: true } - { experiment: boringcrypto, os: linux, arch: amd64, config: test } - { experiment: boringcrypto, os: linux, arch: amd64, config: test, distro: ubuntu } - { os: windows, arch: amd64, config: devscript } diff --git a/eng/pipeline/stages/run-stage.yml b/eng/pipeline/stages/run-stage.yml index d7d7d5b987..011e94ce99 100644 --- a/eng/pipeline/stages/run-stage.yml +++ b/eng/pipeline/stages/run-stage.yml @@ -5,7 +5,7 @@ # This job runs a builder for any OS. parameters: - # { id, os, arch, hostArch, config, distro?, experiment?, fips? } + # { id, os, arch, hostArch, config, distro?, experiment?, fips?, broken? } - name: builder type: object @@ -71,6 +71,8 @@ stages: ${{ if eq(parameters.builder.hostArch, 'amd64') }}: ${{ if eq(parameters.builder.distro, 'ubuntu') }}: container: ubuntu2204 + ${{ elseif eq(parameters.builder.distro, 'azurelinux3') }}: + container: azurelinux3 ${{ else }}: container: mariner1 ${{ elseif eq(parameters.builder.hostArch, 'arm64') }}: @@ -278,6 +280,9 @@ stages: condition: and(ne(variables['TEST_BUILDER_SUCCESSFUL'], 'true'), succeeded()) ${{ if ne(attempt, 'FINAL') }}: ignoreLASTEXITCODE: true + ${{ elseif eq(parameters.builder.broken, true) }}: + # Don't fail the job if we are at the last retry and the builder is marked as broken. + continueOnError: true # - ${{ if eq(parameters.builder.config, 'buildandpack' ) }}: # - ${{ if ne(parameters.releaseVersion, 'nil') }}: diff --git a/eng/pipeline/stages/shorthand-builders-to-builders.yml b/eng/pipeline/stages/shorthand-builders-to-builders.yml index 815ea652fb..123790bcad 100644 --- a/eng/pipeline/stages/shorthand-builders-to-builders.yml +++ b/eng/pipeline/stages/shorthand-builders-to-builders.yml @@ -11,13 +11,13 @@ # to be used by template expressions, as of writing. parameters: - # [] of { os, arch, hostArch, config, distro?, experiment? } + # [] of { os, arch, hostArch, config, distro?, experiment?, broken? } # If hostArch is not defined, defaults to the arch value. # The job ID is generated based on these values. shorthandBuilders: [] # The inner jobs template to pass the filed-out builders into. # - # It should accept parameter "builders", [] of { id, os, arch, hostArch, config, distro?, fips? } + # It should accept parameter "builders", [] of { id, os, arch, hostArch, config, distro?, fips?, broken? } jobsTemplate: "" jobsParameters: {} diff --git a/eng/pipeline/stages/sign-stage.yml b/eng/pipeline/stages/sign-stage.yml index 1ae4e7cfbc..73e1e046a5 100644 --- a/eng/pipeline/stages/sign-stage.yml +++ b/eng/pipeline/stages/sign-stage.yml @@ -6,7 +6,7 @@ # publishes the signed files and signatures into a consolidated pipeline artifact. parameters: - # [] of { id, os, arch, config, distro?, experiment? } + # [] of { id, os, arch, config, distro?, experiment?, broken? } builders: [] stages: