Compare commits

...

4 Commits

Author SHA1 Message Date
Dustin L. Howett
56a3e8b71f NFCI try more matrix steps to investigate how they work 2024-07-22 09:44:02 -05:00
Dustin L. Howett
af11d969ca NFCI: dump stage deps 2024-07-21 20:28:30 -05:00
Dustin L. Howett
e68b6c551c Make all jobs export their artifact name 2024-07-21 19:09:50 -05:00
Dustin L. Howett
f67fab9377 move all jobs to use a JobOutputArtifactName variable 2024-07-21 19:06:29 -05:00
12 changed files with 60 additions and 48 deletions

View File

@@ -47,46 +47,26 @@ parameters:
- arm64
stages:
- ${{ if eq(parameters.auditMode, true) }}:
- stage: Audit_x64
displayName: Audit Mode
dependsOn: []
jobs:
- template: ./templates-v2/job-build-project.yml
parameters:
pool:
${{ if eq(variables['System.CollectionId'], 'cb55739e-4afe-46a3-970f-1b49d8ee7564') }}:
name: SHINE-INT-L
${{ else }}:
name: SHINE-OSS-L
buildPlatforms: [x64]
buildConfigurations: [AuditMode]
buildEverything: true
keepAllExpensiveBuildOutputs: false
- stage: CodeHealth
displayName: Code Health
dependsOn: []
jobs:
- template: ./templates-v2/job-check-code-format.yml
- ${{ each platform in parameters.buildPlatforms }}:
- stage: Build_${{ platform }}
displayName: Build ${{ platform }}
dependsOn: []
jobs:
- template: ./templates-v2/job-build-project.yml
parameters:
pool:
${{ if eq(variables['System.CollectionId'], 'cb55739e-4afe-46a3-970f-1b49d8ee7564') }}:
name: SHINE-INT-L
${{ else }}:
name: SHINE-OSS-L
buildPlatforms:
- ${{ platform }}
buildConfigurations: [Release]
buildEverything: true
keepAllExpensiveBuildOutputs: false
- job: Build
pool:
name: SHINE-OSS-L
strategy:
matrix:
Release_Any CPU:
FooBar: z
Debug_x86:
FooBar: y
Release_x64:
FooBar: x
variables:
JobOutputArtifactName: foo-1
steps:
- template: ./templates-v2/steps-set-artifact-name.yml
- ${{ if eq(parameters.runTests, true) }}:
- stage: Test_${{ platform }}
@@ -95,8 +75,11 @@ stages:
- Build_${{ platform }}
condition: succeeded()
jobs:
- template: ./templates-v2/job-test-project.yml
parameters:
platform: ${{ platform }}
# The tests might be run more than once; log one artifact per attempt.
outputArtifactStem: -$(System.JobAttempt)
- job: Foo
pool:
name: SHINE-OSS-L
variables:
deps: $[convertToJson(stageDependencies)]
steps:
- pwsh: |-
Write-Host "$(deps)"

View File

@@ -146,3 +146,5 @@ jobs:
- publish: $(JobOutputDirectory)
artifact: $(JobOutputArtifactName)
displayName: Publish nupkg
- template: steps-set-artifact-name.yml

View File

@@ -338,3 +338,5 @@ jobs:
- publish: $(Terminal.BinDir)
artifact: $(JobOutputArtifactName)
displayName: Publish All Outputs
- template: steps-set-artifact-name.yml

View File

@@ -154,3 +154,5 @@ jobs:
- publish: $(JobOutputDirectory)
artifact: $(JobOutputArtifactName)
displayName: Publish msixbundle
- template: steps-set-artifact-name.yml

View File

@@ -131,3 +131,5 @@ jobs:
- publish: $(JobOutputDirectory)
artifact: $(JobOutputArtifactName)
displayName: Publish nupkg
- template: steps-set-artifact-name.yml

View File

@@ -26,6 +26,7 @@ jobs:
pgoToolsPath: $(Build.SourcesDirectory)\build\PGO
nuspecPath: $(pgoToolsPath)\NuSpecs
nuspecFilename: PGO.nuspec
JobOutputArtifactName: pgo-nupkg-${{ parameters.buildConfiguration }}${{ parameters.artifactStem }}
steps:
- checkout: self
@@ -65,9 +66,11 @@ jobs:
msbuildArguments: '/t:CreatePGONuGet /p:PGOBuildMode=Instrument /p:PGDPathForAllArch=$(artifactsPath) /p:PGOOutputPath=$(Build.ArtifactStagingDirectory)'
- publish: $(Build.ArtifactStagingDirectory)
artifact: pgo-nupkg-${{ parameters.buildConfiguration }}${{ parameters.artifactStem }}
artifact: $(JobOutputArtifactName)
displayName: "Publish Pipeline Artifact"
- template: steps-set-artifact-name.yml
- task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2
displayName: 'NuGet push'
inputs:

View File

@@ -22,6 +22,8 @@ jobs:
pool: ${{ parameters.pool }}
dependsOn: ${{ parameters.dependsOn }}
displayName: Merge PGO Counts for ${{ parameters.buildConfiguration }}
variables:
JobOutputArtifactName: pgd-merged-${{ parameters.buildConfiguration }}${{ parameters.artifactStem }}
steps:
# The environment variable VCToolsInstallDir isn't defined on lab machines, so we need to retrieve it ourselves.
@@ -38,7 +40,7 @@ jobs:
- task: DownloadPipelineArtifact@2
displayName: Download PGO Databases for ${{ platform }}
inputs:
artifactName: build-${{ platform }}-${{ parameters.buildConfiguration }}${{ parameters.artifactStem }}
artifactName: $[stageDependencies.Build_${{parameters.platform}}.Build.outputs['${{parameters.buildConfiguration}}_${{parameters.platform}}.SetArtifactName.ArtifactName']]
itemPattern: '**/*.pgd'
downloadPath: '$(Build.SourcesDirectory)/pgd/${{ platform }}/${{ parameters.buildConfiguration }}'
- task: DownloadPipelineArtifact@2
@@ -71,5 +73,7 @@ jobs:
targetFolder: '$(Build.ArtifactStagingDirectory)\out-pgd\${{ platform }}'
- publish: $(Build.ArtifactStagingDirectory)\out-pgd
artifact: pgd-merged-${{ parameters.buildConfiguration }}${{ parameters.artifactStem }}
artifact: $(JobOutputArtifactName)
displayName: "Publish merged PGDs"
- template: steps-set-artifact-name.yml

View File

@@ -12,6 +12,7 @@ jobs:
BuildPlatform: ${{ parameters.buildPlatform }}
OutputBuildPlatform: ${{ parameters.buildPlatform }}
Terminal.BinDir: $(Build.SourcesDirectory)/bin/$(OutputBuildPlatform)/$(BuildConfiguration)
JobOutputArtifactName: pgc-intermediates-$(BuildPlatform)-$(BuildConfiguration)${{ parameters.artifactStem }}
pool:
${{ if eq(variables['System.CollectionId'], 'cb55739e-4afe-46a3-970f-1b49d8ee7564') }}:
${{ if ne(parameters.buildPlatform, 'ARM64') }}:
@@ -34,7 +35,7 @@ jobs:
- task: DownloadPipelineArtifact@2
displayName: Download artifacts
inputs:
artifactName: build-${{ parameters.buildPlatform }}-$(BuildConfiguration)${{ parameters.artifactStem }}
artifactName: $[stageDependencies.Build_${{parameters.buildPlatform}}.Build.outputs['${{parameters.buildConfiguration}}_${{parameters.buildPlatform}}.SetArtifactName.ArtifactName']]
downloadPath: $(Terminal.BinDir)
# The tests expect Terminal to be an unpackaged distribution named terminal-0.0.1.0 (after the dev build version scheme)
@@ -79,5 +80,7 @@ jobs:
flattenFolders: true
- publish: '$(Build.ArtifactStagingDirectory)/$(BuildConfiguration)/$(BuildPlatform)/pgc'
artifact: pgc-intermediates-$(BuildPlatform)-$(BuildConfiguration)${{ parameters.artifactStem }}
artifact: $(JobOutputArtifactName)
condition: always()
- template: steps-set-artifact-name.yml

View File

@@ -72,6 +72,8 @@ jobs:
artifact: $(JobOutputArtifactName)
displayName: 'Publish VPack Manifest to Drop'
- template: steps-set-artifact-name.yml
- task: PkgESFCIBGit@12
displayName: 'Submit VPack Manifest to Windows'
inputs:

View File

@@ -16,6 +16,7 @@ jobs:
${{ else }}:
OutputBuildPlatform: ${{ parameters.platform }}
Terminal.BinDir: $(Build.SourcesDirectory)/bin/$(OutputBuildPlatform)/$(BuildConfiguration)
JobOutputArtifactName: test-logs-$(BuildPlatform)-$(BuildConfiguration)${{ parameters.outputArtifactStem }}
pool:
${{ if eq(variables['System.CollectionId'], 'cb55739e-4afe-46a3-970f-1b49d8ee7564') }}:
${{ if ne(parameters.platform, 'ARM64') }}:
@@ -38,7 +39,7 @@ jobs:
- task: DownloadPipelineArtifact@2
displayName: Download artifacts
inputs:
artifactName: build-${{ parameters.platform }}-$(BuildConfiguration)${{ parameters.inputArtifactStem }}
artifactName: $[stageDependencies.Build_${{parameters.platform}}.Build.outputs['${{parameters.configuration}}_${{parameters.platform}}.SetArtifactName.ArtifactName']]
downloadPath: $(Terminal.BinDir)
- task: PowerShell@2
@@ -97,5 +98,7 @@ jobs:
flattenFolders: true
- publish: '$(Build.ArtifactStagingDirectory)/$(BuildConfiguration)/$(BuildPlatform)/test-logs'
artifact: test-logs-$(BuildPlatform)-$(BuildConfiguration)${{ parameters.outputArtifactStem }}
artifact: $(JobOutputArtifactName)
condition: always()
- template: steps-set-artifact-name.yml

View File

@@ -14,7 +14,7 @@ steps:
displayName: Download artifacts for ${{ platform }} ${{ configuration }}
inputs:
# Make sure to download the entire artifact, because it includes the SPDX SBOM
artifactName: build-${{ platform }}-${{ configuration }}${{ parameters.artifactStem }}
artifactName: $[stageDependencies.Build_${{platform}}.Build.outputs['${{configuration}}_${{platform}}.SetArtifactName.ArtifactName']]
# Downloading to the source directory should ensure that the later SBOM generator can see the earlier SBOMs.
${{ if eq(platform, 'x86') }}:
downloadPath: '$(Build.SourcesDirectory)/bin/Win32/${{ configuration }}'

View File

@@ -0,0 +1,6 @@
steps:
- pwsh: |-
echo "##vso[task.setVariable variable=ArtifactName;isOutput=true]$(JobOutputArtifactName)"
name: SetArtifactName
displayName: Set Artifact Name
condition: always()