diff --git a/build/pipelines/azure-pipelines.ci.yaml b/build/pipelines/azure-pipelines.ci.yaml index 542ab397..940eb518 100644 --- a/build/pipelines/azure-pipelines.ci.yaml +++ b/build/pipelines/azure-pipelines.ci.yaml @@ -15,63 +15,48 @@ pr: name: 0.$(Date:yyMM).$(DayOfMonth)$(Rev:rr).0 -resources: - repositories: - - repository: 1esPipelines - type: git - name: 1ESPipelineTemplates/1ESPipelineTemplates - ref: refs/tags/release - -extends: - template: v1/1ES.Unofficial.PipelineTemplate.yml@1esPipelines +jobs: +- template: ./templates/build-single-architecture.yaml parameters: - pool: - name: EssentialExperiencesOpenSource-windows-2022 - image: MMSWindows2022-Secure - os: windows + platform: x64 + isOSSBuild: true + oneEspt: false - sdl: - binskim: - enabled: false +- template: ./templates/build-single-architecture.yaml + parameters: + platform: x86 + condition: not(eq(variables['Build.Reason'], 'PullRequest')) + isOSSBuild: true + oneEspt: false - stages: - - stage: Calculator - jobs: - - template: /build/pipelines/templates/build-single-architecture.yaml@self - parameters: - platform: x64 - isOSSBuild: true +- template: ./templates/build-single-architecture.yaml + parameters: + platform: ARM + condition: not(eq(variables['Build.Reason'], 'PullRequest')) + isOSSBuild: true + oneEspt: false - - template: /build/pipelines/templates/build-single-architecture.yaml@self - parameters: - platform: x86 - condition: not(eq(variables['Build.Reason'], 'PullRequest')) - isOSSBuild: true +- template: ./templates/build-single-architecture.yaml + parameters: + platform: ARM64 + condition: not(eq(variables['Build.Reason'], 'PullRequest')) + isOSSBuild: true + oneEspt: false - - template: /build/pipelines/templates/build-single-architecture.yaml@self - parameters: - platform: ARM - condition: not(eq(variables['Build.Reason'], 'PullRequest')) - isOSSBuild: true +- template: ./templates/run-ui-tests.yaml + parameters: + platform: x64 + isOSSBuild: true + runsettingsFileName: CalculatorUITests.ci.runsettings - - template: /build/pipelines/templates/build-single-architecture.yaml@self - parameters: - platform: ARM64 - condition: not(eq(variables['Build.Reason'], 'PullRequest')) - isOSSBuild: true +- template: ./templates/run-unit-tests.yaml + parameters: + platform: x64 - - template: /build/pipelines/templates/run-ui-tests.yaml@self - parameters: - platform: x64 - isOSSBuild: true - runsettingsFileName: CalculatorUITests.ci.runsettings +- template: ./templates/run-unit-tests.yaml + parameters: + platform: x86 - - template: /build/pipelines/templates/run-unit-tests.yaml@self - parameters: - platform: x64 - - - template: /build/pipelines/templates/run-unit-tests.yaml@self - parameters: - platform: x86 - - - template: /build/pipelines/templates/package-msixbundle.yaml@self +- template: ./templates/package-msixbundle.yaml + parameters: + oneEspt: false diff --git a/build/pipelines/templates/build-single-architecture.yaml b/build/pipelines/templates/build-single-architecture.yaml index b2436f1b..151dff50 100644 --- a/build/pipelines/templates/build-single-architecture.yaml +++ b/build/pipelines/templates/build-single-architecture.yaml @@ -4,6 +4,7 @@ parameters: isReleaseBuild: false isOSSBuild: false useReleaseAppxManifest: false + oneEspt: true # Whether or not this job is going to be running in the 1ES Pipeline Template. platform: '' condition: '' @@ -11,6 +12,10 @@ jobs: - job: Build${{ parameters.platform }} displayName: Build ${{ parameters.platform }} condition: ${{ parameters.condition }} + pool: + name: EssentialExperiencesOpenSource-windows-2022 + image: MMSWindows2022-Secure + os: windows variables: BuildConfiguration: Release BuildPlatform: ${{ parameters.platform }} @@ -28,16 +33,17 @@ jobs: ManifestFileName: 'Package.appxmanifest' ${{ if eq(parameters.useReleaseAppxManifest, true) }}: ManifestFileName: 'Package.Release.appxmanifest' - templateContext: - sdl: - binskim: - analyzeTargetGlob: +:f|$(Agent.BuildDirectory)\binskim\**\* + ${{ if eq(parameters.oneEspt, true) }}: + templateContext: + sdl: + binskim: + analyzeTargetGlob: +:f|$(Agent.BuildDirectory)\binskim\**\* - outputs: - - output: pipelineArtifact - displayName: Publish drop artifact - targetPath: $(Build.BinariesDirectory)\$(BuildConfiguration)\${{ parameters.platform }} - artifactName: drop-${{ parameters.platform }} + outputs: + - output: pipelineArtifact + displayName: Publish drop artifact + targetPath: $(Build.BinariesDirectory)\$(BuildConfiguration)\${{ parameters.platform }} + artifactName: drop-${{ parameters.platform }} steps: - checkout: self @@ -84,6 +90,11 @@ jobs: configuration: $(BuildConfiguration) maximumCpuCount: true + - ${{ if eq(parameters.oneEspt, false) }}: + - publish: $(Build.BinariesDirectory)\$(BuildConfiguration)\${{ parameters.platform }} + artifact: drop-${{ parameters.platform }} + displayName: Publish drop artifact + - ${{ if eq(parameters.isReleaseBuild, true) }}: - task: CopyFiles@2 displayName: Copy Files for BinSkim analysis diff --git a/build/pipelines/templates/package-msixbundle.yaml b/build/pipelines/templates/package-msixbundle.yaml index 76d3b169..31287bcd 100644 --- a/build/pipelines/templates/package-msixbundle.yaml +++ b/build/pipelines/templates/package-msixbundle.yaml @@ -5,6 +5,7 @@ parameters: signBundle: false createStoreBrokerPackages: false + oneEspt: true # Whether or not this job is going to be running in the 1ES Pipeline Template. jobs: - job: Package @@ -29,23 +30,24 @@ jobs: PackageX64: $[in(dependencies.Buildx64.result, 'Succeeded', 'SucceededWithIssues')] PackageARM: $[in(dependencies.BuildARM.result, 'Succeeded', 'SucceededWithIssues')] PackageARM64: $[in(dependencies.BuildARM64.result, 'Succeeded', 'SucceededWithIssues')] - templateContext: - outputs: - - ${{ if eq(parameters.signBundle, false) }}: - - output: pipelineArtifact - displayName: Publish MsixBundle artifact - targetPath: $(Build.ArtifactStagingDirectory)\msixBundle - artifactName: msixBundle - - ${{ else }}: - - output: pipelineArtifact - displayName: Publish MsixBundleSigned artifact - targetPath: $(Build.ArtifactStagingDirectory)\msixBundle - artifactName: msixBundleSigned - - ${{ if eq(parameters.createStoreBrokerPackages, true) }}: + ${{ if eq(parameters.oneEspt, true) }}: + templateContext: + outputs: + - ${{ if eq(parameters.signBundle, false) }}: - output: pipelineArtifact - displayName: Publish StoreBroker Payload artifact - targetPath: $(StoreBrokerPackagePath) - artifactName: storeBrokerPayload + displayName: Publish MsixBundle artifact + targetPath: $(Build.ArtifactStagingDirectory)\msixBundle + artifactName: msixBundle + - ${{ else }}: + - output: pipelineArtifact + displayName: Publish MsixBundleSigned artifact + targetPath: $(Build.ArtifactStagingDirectory)\msixBundle + artifactName: msixBundleSigned + - ${{ if eq(parameters.createStoreBrokerPackages, true) }}: + - output: pipelineArtifact + displayName: Publish StoreBroker Payload artifact + targetPath: $(StoreBrokerPackagePath) + artifactName: storeBrokerPayload steps: - checkout: self @@ -109,6 +111,11 @@ jobs: MAPPINGFILEPATH: $(Build.BinariesDirectory)\MsixBundleMapping.txt OUTPUTPATH: $(Build.BinariesDirectory)\Microsoft.WindowsCalculator_8wekyb3d8bbwe.msixbundle + - ${{ if eq(parameters.oneEspt, false) }}: + - publish: $(Build.ArtifactStagingDirectory)\msixBundle + artifact: msixBundle + displayName: Publish MsixBundle artifact + - task: CopyFiles@2 displayName: Copy MsixBundle to staging directory inputs: