Skip to content

Commit 2c6b8ca

Browse files
Correctly include Git commit in versioning; Lift pipeline build options to queue-time settable parameters; Fiddle with SBOM options (#244)
1 parent ca2b3b7 commit 2c6b8ca

File tree

3 files changed

+59
-29
lines changed

3 files changed

+59
-29
lines changed

azure-pipeline/azure-pipeline.yml

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -21,27 +21,40 @@ resources:
2121
name: 1ESPipelineTemplates/MicroBuildTemplate
2222
ref: refs/tags/release
2323
name: $(Date:yyyyMMdd).$(Rev:r)
24-
variables:
25-
- name: EnableNuGetPackageRestore
26-
value: true
27-
- name: Packaging.EnableSBOMSigning
28-
value: true
24+
parameters:
2925
- name: SkipAzureAppConfigProj
30-
value: false
26+
type: boolean
27+
default: false
3128
- name: SkipAzureProj
32-
value: false
29+
type: boolean
30+
default: false
3331
- name: SkipEnvironmentProj
34-
value: false
32+
type: boolean
33+
default: false
3534
- name: SkipJsonProj
36-
value: false
35+
type: boolean
36+
default: false
3737
- name: SkipKeyPerFileProj
38-
value: false
39-
- name: SkipPackageRestore
40-
value: true
38+
type: boolean
39+
default: false
4140
- name: SkipUserSecretsProj
42-
value: false
43-
- name: TeamName
44-
value: Asp.Net
41+
type: boolean
42+
default: false
43+
variables:
44+
TeamName: Asp.Net
45+
EnableNuGetPackageRestore: true
46+
SkipPackageRestore: false
47+
SkipAzureAppConfigProj: ${{ parameters.SkipAzureAppConfigProj }}
48+
SkipAzureProj: ${{ parameters.SkipAzureProj }}
49+
SkipEnvironmentProj: ${{ parameters.SkipEnvironmentProj }}
50+
SkipJsonProj: ${{ parameters.SkipJsonProj }}
51+
SkipKeyPerFileProj: ${{ parameters.SkipKeyPerFileProj }}
52+
SkipUserSecretsProj: ${{ parameters.SkipUserSecretsProj }}
53+
# Define these at 'Queue Run...' time to enable full Azure-based tests
54+
# Microsoft.Configuration.ConfigurationBuilders.Test.AKV.Common: ''
55+
# Microsoft.Configuration.ConfigurationBuilders.Test.AKV.Custom: ''
56+
# Microsoft.Configuration.ConfigurationBuilders.Test.AzConfig.Common: ''
57+
# Microsoft.Configuration.ConfigurationBuilders.Test.AzConfig.Common: ''
4558
extends:
4659
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
4760
parameters:
@@ -62,7 +75,7 @@ extends:
6275
timeoutInMinutes: 120
6376
cancelTimeoutInMinutes: 1
6477
pool:
65-
name: VSEngSS-MicroBuild2019-1ES
78+
name: VSEngSS-MicroBuild2022-1ES
6679
templateContext:
6780
mb:
6881
signing:
@@ -72,8 +85,14 @@ extends:
7285
outputs:
7386
- output: pipelineArtifact
7487
displayName: 'Publish Artifact: Nuget packages'
75-
targetPath: $(Build.SourcesDirectory)\.binaries\Packages\Release
7688
artifactName: Nuget packages
89+
targetPath: $(Build.SourcesDirectory)\.binaries\Packages\Release
90+
sbomEnabled: true
91+
sbomBuildDropPath: $(Build.SourcesDirectory)\.binaries\Packages\Release
92+
sbomBuildComponentPath: $(Build.SourcesDirectory)\.binaries\Packages\Release
93+
sbomPackageName: Microsoft.Configuration.ConfigurationBuilders
94+
# sbomPackageVersion: $(NugetPackageVersion)
95+
sbomValidate: true
7796
steps:
7897
- checkout: self
7998
clean: true
@@ -100,7 +119,7 @@ extends:
100119
msbuildVersion: 17.0
101120
msbuildArchitecture: x64
102121
configuration: Release
103-
msbuildArguments: /p:GitCommit=%BUILD_SOURCEVERSION% /p:GitCommitLink="https://github.com/aspnet/MicrosoftConfigurationBuilders/commit/%BUILD_SOURCEVERSION%" /p:SignType=real /p:SignAssembly=true /verbosity:n
122+
msbuildArguments: /p:GitCommit=$(Build.SourceVersion) /p:GitCommitLink="https://github.com/aspnet/MicrosoftConfigurationBuilders/commit/$(Build.SourceVersion)" /p:SignType=real /p:SignAssembly=true /p:SkipAzureAppConfigProj=$(SkipAzureAppConfigProj) /p:SkipAzureProj=$(SkipAzureProj) /p:SkipEnvironmentProj=$(SkipEnvironmentProj) /p:SkipJsonProj=$(SkipJsonProj) /p:SkipKeyPerFileProj=$(SkipKeyPerFileProj) /p:SkipPackageRestore=$(SkipPackageRestore) /p:SkipUserSecretsProj=$(SkipUserSecretsProj) /verbosity:n
104123
clean: true
105124
createLogFile: true
106125
logFileVerbosity: detailed

tools/MicrosoftConfigurationBuilders.settings.targets

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
-->
2626
<BuildQuality Condition="'$(BuildQuality)' == ''">rtm</BuildQuality>
2727
<VersionStartYear>2022</VersionStartYear>
28+
<!-- Update version in config.xdt's for major/minor changes. (Don't update for 'release' changes.) -->
2829
<VersionMajor>3</VersionMajor>
2930
<VersionMinor>0</VersionMinor>
3031
<VersionRevision>0</VersionRevision>

tools/version.targets

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Project global versioning targets.
99
<!-- NOTE: The VersionFileAttribute ItemGroup can be used to add assembly-level attributes to the generated version file, ex:
1010
<VersionFileAttribute Include="[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage(&quot;Microsoft.Usage&quot;, &quot;CA2243:AttributeStringLiteralsShouldParseCorrectly&quot;, Justification = &quot;Justification here&quot;)]" />
1111
-->
12-
12+
1313
<PropertyGroup>
1414
<VersionFileGenerationEnabled Condition="'$(VersionFileGenerationEnabled)' == '' AND '$(MSBuildProjectExtension)' == '.csproj'">true</VersionFileGenerationEnabled>
1515
<VersionFileGenerationEnabled Condition="'$(VersionFileGenerationEnabled)' == ''">false</VersionFileGenerationEnabled>
@@ -19,27 +19,22 @@ Project global versioning targets.
1919
<VersionStartYear Condition="'$(VersionStartYear)' == ''">INVALID_VersionStartYear</VersionStartYear>
2020
<VersionMajor Condition="'$(VersionMajor)' == ''">INVALID_VersionMajor</VersionMajor>
2121
<VersionMinor Condition="'$(VersionMinor)' == ''">INVALID_VersionMinor</VersionMinor>
22-
<VersionBuild Condition="'$(VersionBuild)' == '' OR '$(VersionBuild)' == '0'">$([MSBuild]::Add(1, $([MSBuild]::Subtract($([System.DateTime]::Now.Year), $(VersionStartYear)))))$([System.DateTime]::Now.ToString("MMdd"))</VersionBuild>
23-
<VersionRevision Condition="'$(VersionRevision)' == ''">0</VersionRevision>
2422
<VersionRelease Condition="'$(VersionRelease)' == ''">0</VersionRelease>
23+
<VersionRevision Condition="'$(VersionRevision)' == ''">0</VersionRevision>
24+
<VersionBuild Condition="'$(VersionBuild)' == '' OR '$(VersionBuild)' == '0'">$([MSBuild]::Add(1, $([MSBuild]::Subtract($([System.DateTime]::Now.Year), $(VersionStartYear)))))$([System.DateTime]::Now.ToString("MMdd"))</VersionBuild>
2525
</PropertyGroup>
2626

2727
<!-- Comptued parameters -->
2828

2929
<PropertyGroup>
3030
<AssemblyVersion>$(VersionMajor).$(VersionMinor).0.$(VersionRevision)</AssemblyVersion>
31-
<AssemblyFileVersion>$(VersionMajor).$(VersionMinor).$(VersionBuild).$(VersionRevision)</AssemblyFileVersion>
32-
<AssemblyInfoVersion Condition="'$(VersionRelease)' != ''">$(VersionMajor).$(VersionMinor).$(VersionRelease)-$(VersionBuild)</AssemblyInfoVersion>
33-
<AssemblyInfoVersion Condition="'$(AssemblyInfoVersion)' == ''">$(AssemblyFileVersion)</AssemblyInfoVersion>
31+
<AssemblyFileVersion>$(VersionMajor).$(VersionMinor).$(VersionRelease).$(VersionBuild)</AssemblyFileVersion>
3432
<AssemblyVersionFile>$(IntermediateOutputPath)$(MSBuildProjectName).version.cs</AssemblyVersionFile>
3533
</PropertyGroup>
3634

3735
<PropertyGroup>
3836
<NuGetPackageVersion Condition="'$(NuGetPackageVersion)' == ''">$(VersionMajor).$(VersionMinor).$(VersionRelease)</NuGetPackageVersion>
39-
</PropertyGroup>
40-
41-
<PropertyGroup>
42-
<SatelliteContractVersion Condition="'$(SatelliteContractVersion)' == ''">$(AssemblyVersion)</SatelliteContractVersion>
37+
<NuGetPackageVersion Condition="'$(BuildQuality)' != 'rtm'">$(NuGetPackageVersion)-$(BuildQuality)</NuGetPackageVersion>
4338
</PropertyGroup>
4439

4540
<ItemGroup Condition="'$(VersionFileGenerationEnabled)' == 'true'">
@@ -71,7 +66,22 @@ Project global versioning targets.
7166
</PropertyGroup>
7267
<Target Name="GenerateVersionFile" DependsOnTargets="$(GenerateVersionFileDependsOn)" />
7368

74-
<Target Name="GenerateVersionFileCore" Condition="'$(ShouldGenerateVersionFile)' == 'true'">
69+
<Target Name="EnsureGitInfo" Condition="'$(GitCommit)' == ''">
70+
<Exec Command="git describe --match= --always --dirty --abbrev=40" ConsoleToMSBuild="true" IgnoreExitCode="false" ContinueOnError="true" >
71+
<Output PropertyName="GitDescribeOutput" TaskParameter="ConsoleOutput" />
72+
<Output PropertyName="GitDescribeExit" TaskParameter="ExitCode" />
73+
</Exec>
74+
<PropertyGroup Condition="'$(GitDescribeExit)' == '0'">
75+
<GitCommit>$(GitDescribeOutput)</GitCommit>
76+
</PropertyGroup>
77+
</Target>
78+
79+
<Target Name="GenerateVersionFileCore" Condition="'$(ShouldGenerateVersionFile)' == 'true'" DependsOnTargets="EnsureGitInfo">
80+
<PropertyGroup>
81+
<AssemblyInfoVersion Condition="'$(GitCommit)' != ''">$(VersionMajor).$(VersionMinor).$(VersionRelease)+$(GitCommit)</AssemblyInfoVersion>
82+
<AssemblyInfoVersion Condition="'$(AssemblyInfoVersion)' == '' AND '$(VersionBuild)' != ''">$(VersionMajor).$(VersionMinor).$(VersionRelease)-$(VersionBuild)</AssemblyInfoVersion>
83+
<AssemblyInfoVersion Condition="'$(AssemblyInfoVersion)' == ''">$(AssemblyFileVersion)</AssemblyInfoVersion>
84+
</PropertyGroup>
7585
<ItemGroup>
7686
<LinesToWrite Include="// $(SourceFileCopyright)" Condition="'$(SourceFileCopyright)' != ''"/>
7787
<LinesToWrite Include="// &lt;auto-generated&gt;" />

0 commit comments

Comments
 (0)