Skip to content

Commit 9029fe3

Browse files
authored
Merge branch 'master' into bugfix/2268
2 parents fc2bb64 + 75f4774 commit 9029fe3

21 files changed

+195
-73
lines changed

.azurepipelines/artifacts-test.yml

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,17 @@
1-
parameters:
2-
- name: name # defaults for any parameters that aren't specified
3-
default: ''
4-
- name: vmImage
5-
default: ''
6-
71
jobs:
8-
- job: Artifacts_Test_${{ parameters.name }}
9-
displayName: 'Artifacts Test ${{ parameters.name }}'
10-
pool:
11-
vmImage: ${{ parameters.vmImage }}
12-
dependsOn: Generator
13-
strategy:
14-
matrix: $[ dependencies['Generator'].outputs['Map_${{ parameters.name }}.dockerConfigs'] ]
15-
steps:
16-
- template: common-steps.yml
17-
parameters:
18-
includeArtifacts: true
19-
- pwsh: ./build.ps1 -target Artifacts-Test -DockerDistro $(DISTRO) -DockerDotnetVersion $(DOTNET_VERSION)
20-
displayName: '[Docker Test Artifacts]'
2+
- ${{ each distro in parameters.distros }}:
3+
- ${{ each dotnetVersion in parameters.dotnetVersions }}:
4+
- job:
5+
condition: or( ne('${{ distro }}', 'alpine.3.10-x64'), ne('${{ dotnetVersion }}', '3.1'))
6+
displayName: 'Artifacts Test ${{ distro }} ${{ dotnetVersion }} (${{ parameters.name }})'
7+
pool:
8+
vmImage: ${{ parameters.vmImage }}
9+
steps:
10+
- template: common-steps.yml
11+
parameters:
12+
includeArtifacts: true
13+
- pwsh: ./build.ps1 -target Artifacts-Test -DockerDistro ${{ distro }} -DockerDotnetVersion ${{ dotnetVersion }}
14+
displayName: '[Docker Test Artifacts ${{ distro }}_${{ dotnetVersion }}]'
2115
- job: Artifacts_Test_MsBuild
2216
displayName: Artifacts Test MsBuild (Windows)
2317
pool:

.azurepipelines/docker.yml

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,17 @@
1-
parameters:
2-
- name: name # defaults for any parameters that aren't specified
3-
default: ''
4-
- name: vmImage
5-
default: ''
6-
71
jobs:
8-
- job: Docker_${{ parameters.name }}
9-
displayName: 'Docker ${{ parameters.name }}'
10-
pool:
11-
vmImage: ${{ parameters.vmImage }}
12-
dependsOn: Generator
13-
strategy:
14-
matrix: $[ dependencies['Generator'].outputs['Map_${{ parameters.name }}.dockerConfigs'] ]
15-
steps:
16-
- template: common-steps.yml
17-
parameters:
18-
includeArtifacts: true
19-
- pwsh: ./build.ps1 -target Publish-DockerHub -DockerDistro $(DISTRO) -DockerDotnetVersion $(DOTNET_VERSION)
20-
displayName: '[Docker build & Test]'
21-
env:
22-
DOCKER_USERNAME: $(DOCKER_USERNAME)
23-
DOCKER_PASSWORD: $(DOCKER_PASSWORD)
24-
ENABLED_PUBLISH_DOCKER: $(ENABLED_PUBLISH_DOCKER)
2+
- ${{ each distro in parameters.distros }}:
3+
- ${{ each dotnetVersion in parameters.dotnetVersions }}:
4+
- job:
5+
displayName: 'Docker ${{ distro }} ${{ dotnetVersion }} (${{ parameters.name }})'
6+
pool:
7+
vmImage: ${{ parameters.vmImage }}
8+
steps:
9+
- template: common-steps.yml
10+
parameters:
11+
includeArtifacts: true
12+
- pwsh: ./build.ps1 -target Publish-DockerHub -DockerDistro ${{ distro }} -DockerDotnetVersion ${{ dotnetVersion }}
13+
displayName: '[Docker build & Test ${{ distro }} ${{ dotnetVersion }}]'
14+
env:
15+
DOCKER_USERNAME: $(DOCKER_USERNAME)
16+
DOCKER_PASSWORD: $(DOCKER_PASSWORD)
17+
ENABLED_PUBLISH_DOCKER: $(ENABLED_PUBLISH_DOCKER)

.azurepipelines/generate-job.yml

Lines changed: 0 additions & 10 deletions
This file was deleted.

.github/workflows/build.yml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,13 @@ jobs:
102102
runs-on: ubuntu-latest
103103
strategy:
104104
matrix:
105-
os: [linux]
106-
targetFramework: [2.1, 3.1]
107-
distro: [centos.7-x64, debian.9-x64, fedora.30-x64, ubuntu.16.04-x64, ubuntu.18.04-x64]
105+
os: [linux]
106+
targetFramework: [2.1, 3.1]
107+
distro: [alpine.3.10-x64, centos.7-x64, debian.9-x64, fedora.30-x64, ubuntu.16.04-x64, ubuntu.18.04-x64]
108+
exclude:
109+
# for some reason this is not working on CI, but works locally
110+
- targetFramework: 3.1
111+
distro: alpine.3.10-x64
108112
fail-fast: false
109113

110114
steps:
@@ -232,9 +236,9 @@ jobs:
232236
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
233237
strategy:
234238
matrix:
235-
os: [linux]
236-
targetFramework: [2.1, 3.1]
237-
distro: [centos.7-x64, debian.9-x64, fedora.30-x64, ubuntu.16.04-x64, ubuntu.18.04-x64]
239+
os: [linux]
240+
targetFramework: [2.1, 3.1]
241+
distro: [alpine.3.10-x64, centos.7-x64, debian.9-x64, fedora.30-x64, ubuntu.16.04-x64, ubuntu.18.04-x64]
238242
fail-fast: false
239243

240244
steps:

azure-pipelines.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,13 @@ stages:
5555
- Test
5656
condition: succeeded()
5757
jobs:
58-
- template: .azurepipelines/generate-job.yml
58+
# - template: .azurepipelines/generate-job.yml
5959
- template: .azurepipelines/artifacts-test.yml
6060
parameters:
6161
name: Linux
6262
vmImage: 'ubuntu-latest'
63+
distros: [ 'alpine.3.10-x64', 'centos.7-x64', 'debian.9-x64', 'fedora.30-x64', 'ubuntu.16.04-x64', 'ubuntu.18.04-x64' ]
64+
dotnetVersions: [ '2.1', '3.1' ]
6365
# - template: .azurepipelines/artifacts-test.yml
6466
# parameters:
6567
# name: Windows
@@ -70,11 +72,13 @@ stages:
7072
dependsOn: Artifact_Test
7173
condition: succeeded()
7274
jobs:
73-
- template: .azurepipelines/generate-job.yml
75+
# - template: .azurepipelines/generate-job.yml
7476
- template: .azurepipelines/docker.yml
7577
parameters:
7678
name: Linux
7779
vmImage: 'ubuntu-latest'
80+
distros: [ 'alpine.3.10-x64', 'centos.7-x64', 'debian.9-x64', 'fedora.30-x64', 'ubuntu.16.04-x64', 'ubuntu.18.04-x64' ]
81+
dotnetVersions: [ '2.1', '3.1' ]
7882
# - template: .azurepipelines/docker.yml
7983
# parameters:
8084
# name: Windows

docs/input/docs/configuration.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,10 @@ The number of characters to pad `CommitsSinceVersionSource` to in the
199199
set to `4`, which will pad the `CommitsSinceVersionSource` value of `1` to
200200
`0001`.
201201

202+
### tag-pre-release-weight
203+
204+
The pre-release weight in case of tagged commits. If the value is not set in the configuration, a default weight of 60000 is used instead. If the `WeightedPreReleaseNumber` [variable](./more-info/variables) is 0 and this parameter is set, its value is used. This helps if your branching model is GitFlow and the last release build, which is often tagged, can utilise this parameter to produce a monotonically increasing build number.
205+
202206
### commit-message-incrementing
203207

204208
Sets whether it should be possible to increment the version with special syntax

src/Docker/docker.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
{
22
"linux": {
33
"2.1": [
4+
"alpine.3.10-x64",
45
"centos.7-x64",
56
"debian.9-x64",
67
"fedora.30-x64",
78
"ubuntu.16.04-x64",
89
"ubuntu.18.04-x64"
910
],
1011
"3.1": [
12+
"alpine.3.10-x64",
1113
"centos.7-x64",
1214
"debian.9-x64",
1315
"fedora.30-x64",
@@ -23,4 +25,4 @@
2325
"nanoserver"
2426
]
2527
}
26-
}
28+
}

src/GitVersionCore.Tests/Configuration/ConfigProviderTests.CanWriteOutEffectiveConfiguration.approved.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ no-bump-message: '\+semver:\s?(none|skip)'
1010
legacy-semver-padding: 4
1111
build-metadata-padding: 4
1212
commits-since-version-source-padding: 4
13+
tag-pre-release-weight: 60000
1314
commit-message-incrementing: Enabled
1415
branches:
1516
develop:

src/GitVersionCore.Tests/Helpers/TestEffectiveConfiguration.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public TestEffectiveConfiguration(
4343
majorMessage, minorMessage, patchMessage, noBumpMessage,
4444
commitMessageMode, legacySemVerPadding, buildMetaDataPadding, commitsSinceVersionSourcePadding,
4545
versionFilters ?? Enumerable.Empty<IVersionFilter>(),
46-
tracksReleaseBranches, isRelease, commitDateFormat, updateBuildNumber, 0)
46+
tracksReleaseBranches, isRelease, commitDateFormat, updateBuildNumber, 0, 0)
4747
{
4848
}
4949
}
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
using GitTools.Testing;
2+
using GitVersion.Configuration;
3+
using GitVersion.Model.Configuration;
4+
using GitVersion.VersionCalculation;
5+
using NUnit.Framework;
6+
using Shouldly;
7+
8+
namespace GitVersionCore.Tests.IntegrationTests
9+
{
10+
[TestFixture]
11+
class VersionInTagScenarios
12+
{
13+
[Test]
14+
public void TagPreReleaseWeightIsNotConfigured_HeadIsATaggedCommit_WeightedPreReleaseNumberShouldBeTheDefaultValue()
15+
{
16+
// Arrange
17+
var config = new Config()
18+
{
19+
AssemblyFileVersioningFormat = "{Major}.{Minor}.{Patch}.{WeightedPreReleaseNumber}",
20+
};
21+
config.ApplyDefaults();
22+
23+
// Act
24+
using var fixture = new BaseGitFlowRepositoryFixture("1.0.0");
25+
fixture.MakeATaggedCommit("1.1.0");
26+
var version = fixture.GetVersion(config);
27+
28+
// Assert
29+
version.AssemblySemFileVer.ShouldBe("1.1.0.60000");
30+
}
31+
32+
[Test]
33+
public void TagPreReleaseWeightIsConfigured_HeadIsATaggedCommit_WeightedPreReleaseNumberShouldBeTheSameAsTheTagPreReleaseWeight()
34+
{
35+
// Arrange
36+
var config = new Config()
37+
{
38+
AssemblyFileVersioningFormat = "{Major}.{Minor}.{Patch}.{WeightedPreReleaseNumber}",
39+
TagPreReleaseWeight = 65535
40+
};
41+
config.ApplyDefaults();
42+
43+
// Act
44+
using var fixture = new BaseGitFlowRepositoryFixture("1.0.0");
45+
fixture.MakeATaggedCommit("1.1.0");
46+
var version = fixture.GetVersion(config);
47+
48+
// Assert
49+
version.AssemblySemFileVer.ShouldBe("1.1.0.65535");
50+
}
51+
52+
[Test]
53+
public void TagPreReleaseWeightIsConfigured_GitFlowReleaseIsFinished_WeightedPreReleaseNumberShouldBeTheSameAsTheTagPreReleaseWeight()
54+
{
55+
// Arrange
56+
var config = new Config()
57+
{
58+
AssemblyFileVersioningFormat = "{Major}.{Minor}.{Patch}.{WeightedPreReleaseNumber}",
59+
TagPreReleaseWeight = 65535,
60+
VersioningMode = VersioningMode.ContinuousDeployment
61+
};
62+
config.ApplyDefaults();
63+
64+
// Act
65+
using var fixture = new BaseGitFlowRepositoryFixture("1.0.0");
66+
fixture.Checkout("master");
67+
fixture.MergeNoFF("develop");
68+
fixture.Checkout("develop");
69+
fixture.MakeACommit("Feature commit 1");
70+
fixture.BranchTo("release/1.1.0");
71+
fixture.MakeACommit("Release commit 1");
72+
fixture.AssertFullSemver("1.1.0-beta.1", config);
73+
fixture.ApplyTag("1.1.0");
74+
var version = fixture.GetVersion(config);
75+
76+
// Assert
77+
version.AssemblySemFileVer.ShouldBe("1.1.0.65535");
78+
}
79+
80+
[Test]
81+
public void TagPreReleaseWeightIsNotConfigured_GitFlowReleaseIsFinished_WeightedPreReleaseNumberShouldBeTheDefaultValue()
82+
{
83+
// Arrange
84+
var config = new Config()
85+
{
86+
AssemblyFileVersioningFormat = "{Major}.{Minor}.{Patch}.{WeightedPreReleaseNumber}",
87+
VersioningMode = VersioningMode.ContinuousDeployment
88+
};
89+
config.ApplyDefaults();
90+
91+
// Act
92+
using var fixture = new BaseGitFlowRepositoryFixture("1.0.0");
93+
fixture.Checkout("master");
94+
fixture.MergeNoFF("develop");
95+
fixture.Checkout("develop");
96+
fixture.MakeACommit("Feature commit 1");
97+
fixture.BranchTo("release/1.1.0");
98+
fixture.MakeACommit("Release commit 1");
99+
fixture.AssertFullSemver("1.1.0-beta.1", config);
100+
fixture.ApplyTag("1.1.0");
101+
var version = fixture.GetVersion(config);
102+
103+
// Assert
104+
version.AssemblySemFileVer.ShouldBe("1.1.0.60000");
105+
}
106+
}
107+
}

src/GitVersionCore.Tests/Model/CommitDateTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public void CommitDateFormatTest(string format, string expectedOutcome)
2929
},
3030
new EffectiveConfiguration(
3131
AssemblyVersioningScheme.MajorMinorPatch, AssemblyFileVersioningScheme.MajorMinorPatch, "", "", "", VersioningMode.ContinuousDelivery, "", "", "", IncrementStrategy.Inherit,
32-
"", true, "", "", false, "", "", "", "", CommitMessageIncrementMode.Enabled, 4, 4, 4, Enumerable.Empty<IVersionFilter>(), false, true, format, false, 0)
32+
"", true, "", "", false, "", "", "", "", CommitMessageIncrementMode.Enabled, 4, 4, 4, Enumerable.Empty<IVersionFilter>(), false, true, format, false, 0, 0)
3333
);
3434

3535
Assert.That(formatValues.CommitDate, Is.EqualTo(expectedOutcome));

src/GitVersionCore.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"PreReleaseTagWithDash":"",
77
"PreReleaseLabel":"",
88
"PreReleaseNumber":"",
9-
"WeightedPreReleaseNumber":"",
9+
"WeightedPreReleaseNumber":0,
1010
"BuildMetaData":5,
1111
"BuildMetaDataPadded":"0005",
1212
"FullBuildMetaData":"5.Branch.feature-123.Sha.commitSha",

src/GitVersionCore.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"PreReleaseTagWithDash":"",
77
"PreReleaseLabel":"",
88
"PreReleaseNumber":"",
9-
"WeightedPreReleaseNumber":"",
9+
"WeightedPreReleaseNumber":0,
1010
"BuildMetaData":5,
1111
"BuildMetaDataPadded":"0005",
1212
"FullBuildMetaData":"5.Branch.feature-123.Sha.commitSha",

src/GitVersionCore.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"PreReleaseTagWithDash":"",
77
"PreReleaseLabel":"",
88
"PreReleaseNumber":"",
9-
"WeightedPreReleaseNumber":"",
9+
"WeightedPreReleaseNumber":0,
1010
"BuildMetaData":5,
1111
"BuildMetaDataPadded":"0005",
1212
"FullBuildMetaData":"5.Branch.develop.Sha.commitSha",

src/GitVersionCore.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"PreReleaseTagWithDash":"",
77
"PreReleaseLabel":"",
88
"PreReleaseNumber":"",
9-
"WeightedPreReleaseNumber":"",
9+
"WeightedPreReleaseNumber":0,
1010
"BuildMetaData":5,
1111
"BuildMetaDataPadded":"0005",
1212
"FullBuildMetaData":"5.Sha.commitSha",

src/GitVersionCore.Tests/VersionConverters/Approved/WixFileTests.UpdateWixVersionFile.approved.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,5 @@
3030
<?define Sha="commitSha"?>
3131
<?define ShortSha="commitShortSha"?>
3232
<?define VersionSourceSha="versionSourceSha"?>
33-
<?define WeightedPreReleaseNumber=""?>
33+
<?define WeightedPreReleaseNumber="0"?>
3434
</Include>

src/GitVersionCore.Tests/VersionConverters/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,5 @@
3030
<?define Sha="commitSha"?>
3131
<?define ShortSha="commitShortSha"?>
3232
<?define VersionSourceSha="versionSourceSha"?>
33-
<?define WeightedPreReleaseNumber=""?>
33+
<?define WeightedPreReleaseNumber="0"?>
3434
</Include>

0 commit comments

Comments
 (0)