diff --git a/eng/pipelines/templates/jobs/archetype-sdk-client.yml b/eng/pipelines/templates/jobs/archetype-sdk-client.yml index 3514ff3f4..622a92cc6 100644 --- a/eng/pipelines/templates/jobs/archetype-sdk-client.yml +++ b/eng/pipelines/templates/jobs/archetype-sdk-client.yml @@ -52,7 +52,7 @@ parameters: default: true jobs: - - template: /eng/common/pipelines/templates/jobs/archetype-sdk-tests-generate.yml + - template: /eng/common/pipelines/templates/jobs/generate-job-matrix.yml parameters: GenerateJobName: ${{ parameters.JobName }}_generate_matrix MatrixConfigs: @@ -61,8 +61,8 @@ jobs: Selection: all GenerateVMJobs: true JobTemplatePath: /eng/pipelines/templates/jobs/ci.tests.yml - OsVmImage: azsdk-pool-mms-ubuntu-2004-1espt - Pool: azsdk-pool-mms-ubuntu-2004-1es-pt + OsVmImage: $(LINUXVMIMAGE) + Pool: $(LINUXPOOL) AdditionalParameters: DisplayName: ${{ parameters.JobName }} Artifacts: ${{ parameters.Artifacts }} @@ -84,8 +84,8 @@ jobs: - job: displayName: Create API Review for ${{ artifact.name }} pool: - name: azsdk-pool-mms-win-2022-1es-pt - vmImage: azsdk-pool-mms-win-2022-1espt + name: $(WINDOWSPOOL) + image: $(WINDOWSVMIMAGE) os: windows steps: - task: Powershell@2 @@ -144,8 +144,8 @@ jobs: - job: GenerateReleaseArtifacts pool: - name: azsdk-pool-mms-win-2022-1es-pt - vmImage: azsdk-pool-mms-win-2022-1espt + name: $(WINDOWSPOOL) + image: $(WINDOWSVMIMAGE) os: windows variables: VCPKG_DEFAULT_TRIPLET: 'x64-windows-static' diff --git a/eng/pipelines/templates/jobs/ci.tests.yml b/eng/pipelines/templates/jobs/ci.tests.yml index 59e19280a..89b609ec4 100644 --- a/eng/pipelines/templates/jobs/ci.tests.yml +++ b/eng/pipelines/templates/jobs/ci.tests.yml @@ -68,8 +68,13 @@ jobs: matrix: $[ ${{ parameters.Matrix }} ] maxParallel: 12 pool: - vmImage: $(OSVmImage) name: $(Pool) + # 1es pipeline templates converts `image` to demands: ImageOverride under the hood + # which is incompatible with image selection in the default non-1es hosted pools + ${{ if eq(parameters.OSName, 'macOS') }}: + vmImage: $(OSVmImage) + ${{ else }}: + image: $(OSVmImage) os: ${{ parameters.OSName }} variables: - name: CMOCKA_XML_FILE diff --git a/eng/pipelines/templates/jobs/cmake-generate-jobs.yml b/eng/pipelines/templates/jobs/cmake-generate-jobs.yml index d0f186f9b..07001d6f8 100644 --- a/eng/pipelines/templates/jobs/cmake-generate-jobs.yml +++ b/eng/pipelines/templates/jobs/cmake-generate-jobs.yml @@ -19,7 +19,7 @@ parameters: default: 120 jobs: -- template: /eng/common/pipelines/templates/jobs/archetype-sdk-tests-generate.yml +- template: /eng/common/pipelines/templates/jobs/generate-job-matrix.yml parameters: MatrixConfigs: - Name: base @@ -27,15 +27,15 @@ jobs: Selection: all GenerateVMJobs: true JobTemplatePath: /eng/pipelines/templates/jobs/cmake-generate.tests.yml - OsVmImage: azsdk-pool-mms-ubuntu-2004-1espt - Pool: azsdk-pool-mms-ubuntu-2004-1es-pt + OsVmImage: $(LINUXVMIMAGE) + Pool: $(LINUXPOOL) GenerateJobName: generate_matrix_cmake AdditionalParameters: Artifacts: ${{ parameters.Artifacts }} ServiceDirectory: ${{ parameters.ServiceDirectory }} CMakeTestOptions: ${{ parameters.CMakeTestOptions }} -- template: /eng/common/pipelines/templates/jobs/archetype-sdk-tests-generate.yml +- template: /eng/common/pipelines/templates/jobs/generate-job-matrix.yml parameters: MatrixConfigs: - Name: base @@ -43,8 +43,8 @@ jobs: Selection: all GenerateVMJobs: true JobTemplatePath: /eng/pipelines/templates/jobs/cmake-generate.tests.yml - OsVmImage: azsdk-pool-mms-ubuntu-2004-1espt - Pool: azsdk-pool-mms-ubuntu-2004-1es-pt + OsVmImage: $(LINUXVMIMAGE) + Pool: $(LINUXPOOL) GenerateJobName: generate_matrix_cmake_source AdditionalParameters: Artifacts: ${{ parameters.ArtifactsSource }} diff --git a/eng/pipelines/templates/jobs/live.tests.yml b/eng/pipelines/templates/jobs/live.tests.yml index 01efcb292..d7d227955 100644 --- a/eng/pipelines/templates/jobs/live.tests.yml +++ b/eng/pipelines/templates/jobs/live.tests.yml @@ -39,6 +39,9 @@ parameters: - name: PostTestSteps type: stepList default: [] +- name: OSName + type: string + default: '' jobs: - job: ValidateLive @@ -47,7 +50,14 @@ jobs: timeoutInMinutes: ${{ parameters.TimeoutInMinutes }} pool: name: $(Pool) - vmImage: $(OSVmImage) + # 1es pipeline templates converts `image` to demands: ImageOverride under the hood + # which is incompatible with image selection in the default non-1es hosted pools + ${{ if eq(parameters.OSName, 'macOS') }}: + vmImage: $(OSVmImage) + ${{ else }}: + image: $(OSVmImage) + os: ${{ parameters.OSName }} + ${{ if eq(parameters.UsePlatformContainer, 'true') }}: # Add a default so the job doesn't fail when the matrix is empty @@ -58,18 +68,30 @@ jobs: matrix: $[ ${{ parameters.Matrix }} ] variables: - CMOCKA_XML_FILE: "%g-test-results.xml" - CMOCKA_MESSAGE_OUTPUT: "xml" - AZURE_ENABLE_STATIC_ANALYSIS: 1 - BuildArgs: "" - VcpkgArgs: "" - WindowsCtestConfig: "" - CmakeEnvArg: "" - CmakeArgs: "" - AZURE_TEST_MODE: "LIVE" - AZURE_LOG_LEVEL: "verbose" - # Surface the ServiceDirectory parameter as an environment variable so tests can take advantage of it. - AZURE_SERVICE_DIRECTORY: ${{ parameters.ServiceDirectory }} + - template: /eng/pipelines/templates/variables/image.yml@self + - name: CMOCKA_XML_FILE + value: "%g-test-results.xml" + - name: CMOCKA_MESSAGE_OUTPUT + value: "xml" + - name: AZURE_ENABLE_STATIC_ANALYSIS + value: 1 + - name: BuildArgs + value: "" + - name: VcpkgArgs + value: "" + - name: WindowsCtestConfig + value: "" + - name: CmakeEnvArg + value: "" + - name: CmakeArgs + value: "" + - name: AZURE_TEST_MODE + value: "LIVE" + - name: AZURE_LOG_LEVEL + value: "verbose" + # Surface the ServiceDirectory parameter as an environment variable so tests can take advantage of it. + - name: AZURE_SERVICE_DIRECTORY + value: ${{ parameters.ServiceDirectory }} steps: - checkout: self diff --git a/eng/pipelines/templates/stages/archetype-sdk-client.yml b/eng/pipelines/templates/stages/archetype-sdk-client.yml index 0e763f1fd..ef4a786a9 100644 --- a/eng/pipelines/templates/stages/archetype-sdk-client.yml +++ b/eng/pipelines/templates/stages/archetype-sdk-client.yml @@ -90,32 +90,31 @@ extends: ${{ else }}: template: v1/1ES.Unofficial.PipelineTemplate.yml@1ESPipelineTemplates parameters: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - sdl: - sourceAnalysisPool: - name: azsdk-pool-mms-win-2022-1es-pt - image: azsdk-pool-mms-win-2022-1espt - os: windows - eslint: - enabled: false - justificationForDisabling: 'ESLint injected task has failures because it uses an old version of mkdirp. We should not fail for tools not controlled by the repo. See: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=3499746' - codeql: - compiled: - enabled: false - justificationForDisabling: CodeQL times our pipelines out by running for 2+ hours before being force canceled. - psscriptanalyzer: - compiled: true - break: true - policy: M365 - credscan: - suppressionsFile: $(Build.SourcesDirectory)/eng/CredScanSuppression.json - toolVersion: 2.3.12.23 - binskim: - enabled: true - scanOutputDirectoryOnly: true + settings: + skipBuildTagsForGitHubPullRequests: true + sdl: + sourceAnalysisPool: + name: azsdk-pool-mms-win-2022-1es-pt + image: azsdk-pool-mms-win-2022-1espt + os: windows + eslint: + enabled: false + justificationForDisabling: 'ESLint injected task has failures because it uses an old version of mkdirp. We should not fail for tools not controlled by the repo. See: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=3499746' + psscriptanalyzer: + compiled: true + break: true + policy: M365 + credscan: + suppressionsFile: $(Build.SourcesDirectory)/eng/CredScanSuppression.json + toolVersion: 2.3.12.23 + binskim: + enabled: true + scanOutputDirectoryOnly: true stages: - stage: CMakeGeneration + variables: + - template: /eng/pipelines/templates/variables/image.yml@self jobs: - template: /eng/pipelines/templates/jobs/cmake-generate-jobs.yml@self parameters: @@ -129,6 +128,8 @@ extends: # PrePublishBuild runs a narrower set of fast builds. If these builds pass, # Integration can launch immediately without awaiting more build and test jobs - stage: PrePublishBuild + variables: + - template: /eng/pipelines/templates/variables/image.yml@self dependsOn: [] jobs: - template: /eng/pipelines/templates/jobs/archetype-sdk-client.yml@self @@ -151,6 +152,8 @@ extends: RunMetaJobs: true - stage: Build + variables: + - template: /eng/pipelines/templates/variables/image.yml@self dependsOn: [] jobs: - template: /eng/pipelines/templates/jobs/archetype-sdk-client.yml@self diff --git a/eng/pipelines/templates/stages/archetype-sdk-tests.yml b/eng/pipelines/templates/stages/archetype-sdk-tests.yml index ff492688b..adbe4cada 100644 --- a/eng/pipelines/templates/stages/archetype-sdk-tests.yml +++ b/eng/pipelines/templates/stages/archetype-sdk-tests.yml @@ -43,7 +43,7 @@ stages: - stage: LiveTest_${{ cloud.key }} dependsOn: [] jobs: - - template: /eng/common/pipelines/templates/jobs/archetype-sdk-tests-generate.yml + - template: /eng/common/pipelines/templates/jobs/generate-job-matrix.yml parameters: MatrixConfigs: - Name: base @@ -51,8 +51,8 @@ stages: Selection: all GenerateVMJobs: true JobTemplatePath: /eng/pipelines/templates/jobs/live.tests.yml - OsVmImage: azsdk-pool-mms-ubuntu-2004-1espt - Pool: azsdk-pool-mms-ubuntu-2004-1es-pt + OsVmImage: $(LINUXVMIMAGE) + Pool: $(LINUXPOOL) CloudConfig: SubscriptionConfiguration: ${{ cloud.value.SubscriptionConfiguration }} SubscriptionConfigurations: ${{ cloud.value.SubscriptionConfigurations }}