Skip to content

Commit 67b3e81

Browse files
author
Frode Nilsen
authored
Merge branch 'master' into issue-1348
2 parents 7758ab8 + 8b1965c commit 67b3e81

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+192
-3594
lines changed

.artifactignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
**/*
22

33
!artifacts/*/bin/netcoreapp2.1
4-
!artifacts/*/bin/netcoreapp3.0
4+
!artifacts/*/bin/netcoreapp3.1
55
!artifacts/*/build-artifact
66
!artifacts/*/nuget
77

.gitignore

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -114,20 +114,12 @@ GitVersion.CommandLine/*/
114114
releaseArtifacts
115115
/ILMergeTemp
116116
.dotnet
117-
.cake
118117
artifacts
119118
src/Docker/**/content
120-
src/GitVersionVsixTask/node_modules/
121-
src/GitVersionVsixTask/*.d.ts
122-
src/GitVersionVsixTask/*.js
123-
src/GitVersionVsixTask/tests/*.js
124-
src/GitVersionVsixTask/GitVersionTask
125-
src/GitVersionVsixTask/*.vsix
126-
src/GitVersionVsixTask/.taskkey
127-
!src/GitVersionVsixTask/GitVersionTask/task.json
128119

129120
src/GitVersionRubyGem/*.gem
130121
src/GitVersionRubyGem/bin/lib
131122
src/GitVersionRubyGem/bin/GitVersion.exe
132123
src/GitVersionRubyGem/bin/LibGit2Sharp.dll.config
133124

125+
!**/*.cake

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ works out the [semantic version][semver] of the commit being built.
2828

2929
## Compatibility
3030

31-
GitVersion works Windows, Linux, and Mac.
31+
GitVersion works on Windows, Linux, and Mac.
3232

3333
Tip: If you get `System.TypeInitializationException: The type initializer for
3434
'LibGit2Sharp.Core.NativeMethods' threw an exception. --->

azure-pipelines.yml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ stages:
99
'Windows':
1010
VM_IMAGE: 'windows-latest'
1111
'Linux':
12-
VM_IMAGE: 'ubuntu-16.04'
12+
VM_IMAGE: 'ubuntu-latest'
1313
'macOS':
1414
VM_IMAGE: 'macOS-latest'
1515
pool:
@@ -25,7 +25,7 @@ stages:
2525
'Windows':
2626
VM_IMAGE: 'windows-latest'
2727
'Linux':
28-
VM_IMAGE: 'ubuntu-16.04'
28+
VM_IMAGE: 'ubuntu-latest'
2929
'macOS':
3030
VM_IMAGE: 'macOS-latest'
3131
pool:
@@ -44,11 +44,11 @@ stages:
4444
- template: build/stages/artifacts-test.yml
4545
parameters:
4646
name: Linux
47-
vmImage: 'ubuntu-16.04'
48-
- template: build/stages/artifacts-test.yml
49-
parameters:
50-
name: Windows
51-
vmImage: 'windows-latest'
47+
vmImage: 'ubuntu-latest'
48+
# - template: build/stages/artifacts-test.yml
49+
# parameters:
50+
# name: Windows
51+
# vmImage: 'windows-latest'
5252

5353
- stage: Docker
5454
dependsOn: Artifact_Test
@@ -58,11 +58,11 @@ stages:
5858
- template: build/stages/docker.yml
5959
parameters:
6060
name: Linux
61-
vmImage: 'ubuntu-16.04'
62-
- template: build/stages/docker.yml
63-
parameters:
64-
name: Windows
65-
vmImage: 'windows-latest'
61+
vmImage: 'ubuntu-latest'
62+
# - template: build/stages/docker.yml
63+
# parameters:
64+
# name: Windows
65+
# vmImage: 'windows-latest'
6666

6767
- stage: Publish
6868
dependsOn: Artifact_Test

build.cake

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
// Install .NET Core Global tools.
2525
#tool "dotnet:?package=Codecov.Tool&version=1.7.2"
2626
#tool "dotnet:?package=GitReleaseManager.Tool&version=0.9.0"
27-
#tool "dotnet:?package=GitVersion.Tool&version=5.1.2"
2827

2928
// Load other scripts.
3029
#load "./build/utils/parameters.cake"
@@ -107,7 +106,6 @@ Teardown<BuildParameters>((context, parameters) =>
107106
//////////////////////////////////////////////////////////////////////
108107

109108
Task("Pack")
110-
.IsDependentOn("Pack-Vsix")
111109
.IsDependentOn("Pack-Gem")
112110
.IsDependentOn("Pack-Nuget")
113111
.IsDependentOn("Pack-Chocolatey")
@@ -141,7 +139,6 @@ Task("Publish")
141139
.IsDependentOn("Publish-AzurePipeline")
142140
.IsDependentOn("Publish-NuGet")
143141
.IsDependentOn("Publish-Chocolatey")
144-
.IsDependentOn("Publish-Vsix")
145142
.IsDependentOn("Publish-Gem")
146143
.Finally(() =>
147144
{

build.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
#!/usr/bin/env bash
22
CAKE_VERSION=0.35
3-
DOTNET_VERSION=2.1.802,3.0.100
3+
DOTNET_VERSION=2.1.802,3.1.100

build/artifacts-test.cake

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ Task("Artifacts-Prepare")
66
.IsDependentOnWhen("Pack-Nuget", singleStageRun)
77
.Does<BuildParameters>((parameters) =>
88
{
9-
RunGitVersionOnCI(parameters);
109
});
1110

1211
Task("Artifacts-DotnetTool-Test")
@@ -20,8 +19,11 @@ Task("Artifacts-DotnetTool-Test")
2019

2120
foreach(var dockerImage in parameters.Docker.Images)
2221
{
23-
var cmd = $"dotnet tool install GitVersion.Tool --version {version} --tool-path {rootPrefix}/gitversion --add-source {rootPrefix}/nuget | out-null; ";
22+
var cmd = $"$result = dotnet tool install GitVersion.Tool --version {version} --tool-path {rootPrefix}/gitversion --add-source {rootPrefix}/nuget | out-null; ";
23+
cmd += "if($LASTEXITCODE -eq 0) { ";
2424
cmd += $"{rootPrefix}/gitversion/dotnet-gitversion {rootPrefix}/repo /showvariable FullSemver;";
25+
cmd += "} else { echo $result }";
26+
2527

2628
DockerTestArtifact(dockerImage, parameters, cmd);
2729
}
@@ -39,8 +41,10 @@ Task("Artifacts-MsBuild-Test")
3941
foreach(var dockerImage in parameters.Docker.Images)
4042
{
4143
var (os, distro, targetframework) = dockerImage;
42-
var cmd = $"dotnet build {rootPrefix}/repo/test --source {rootPrefix}/nuget --source https://api.nuget.org/v3/index.json -p:GitVersionTaskVersion={version} -p:TargetFramework={targetframework} | out-null; ";
44+
var cmd = $"$result = dotnet build {rootPrefix}/repo/test --source {rootPrefix}/nuget --source https://api.nuget.org/v3/index.json -p:GitVersionTaskVersion={version} -p:TargetFramework={targetframework} *>&1; ";
45+
cmd += "if($LASTEXITCODE -eq 0) { ";
4346
cmd += $"dotnet {rootPrefix}/repo/test/build/corefx/{targetframework}/TestRepo.dll;";
47+
cmd += "} else { echo $result }";
4448

4549
DockerTestArtifact(dockerImage, parameters, cmd);
4650
}

build/docker.cake

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ Task("Docker-Test")
1818
.IsDependentOn("Docker-Build")
1919
.Does<BuildParameters>((parameters) =>
2020
{
21-
RunGitVersionOnCI(parameters);
2221
var settings = GetDockerRunSettings(parameters);
2322

2423
foreach(var dockerImage in parameters.Docker.Images)

build/pack.cake

Lines changed: 3 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@ Task("Clean")
77

88
CleanDirectories("./src/**/bin/" + parameters.Configuration);
99
CleanDirectories("./src/**/obj");
10-
CleanDirectories("./src/GitVersionVsixTask/scripts/**");
11-
12-
DeleteFiles("src/GitVersionVsixTask/*.vsix");
1310
DeleteFiles("src/GitVersionRubyGem/*.gem");
1411

1512
CleanDirectories(parameters.Paths.Directories.ToClean);
@@ -20,21 +17,11 @@ Task("Build")
2017
.Does<BuildParameters>((parameters) =>
2118
{
2219
Build(parameters);
20+
PublishGitVersionToArtifacts(parameters);
2321

2422
RunGitVersionOnCI(parameters);
2523
});
2624

27-
Task("Build-Vsix")
28-
.IsDependentOn("Build")
29-
.Does<BuildParameters>((parameters) =>
30-
{
31-
var workDir = "./src/GitVersionVsixTask";
32-
// build typescript code
33-
NpmSet(new NpmSetSettings { WorkingDirectory = workDir, LogLevel = NpmLogLevel.Silent, Key = "progress", Value = "false" });
34-
NpmInstall(new NpmInstallSettings { WorkingDirectory = workDir, LogLevel = NpmLogLevel.Silent });
35-
NpmRunScript(new NpmRunScriptSettings { WorkingDirectory = workDir, LogLevel = NpmLogLevel.Silent, ScriptName = "build" });
36-
});
37-
3825
#endregion
3926

4027
#region Pack
@@ -49,7 +36,7 @@ Task("Pack-Prepare")
4936

5037
var settings = new DotNetCorePublishSettings
5138
{
52-
Framework = parameters.CoreFxVersion30,
39+
Framework = parameters.CoreFxVersion31,
5340
Runtime = runtimeName,
5441
NoRestore = false,
5542
Configuration = parameters.Configuration,
@@ -66,24 +53,7 @@ Task("Pack-Prepare")
6653
DotNetCorePublish("./src/GitVersionExe/GitVersionExe.csproj", settings);
6754
}
6855

69-
var frameworks = new[] { parameters.CoreFxVersion21, parameters.CoreFxVersion30, parameters.FullFxVersion472 };
70-
71-
// publish Framework-dependent deployment
72-
foreach(var framework in frameworks)
73-
{
74-
var settings = new DotNetCorePublishSettings
75-
{
76-
Framework = framework,
77-
NoRestore = false,
78-
Configuration = parameters.Configuration,
79-
OutputDirectory = parameters.Paths.Directories.ArtifactsBin.Combine(framework),
80-
MSBuildSettings = parameters.MSBuildSettings,
81-
};
82-
83-
DotNetCorePublish("./src/GitVersionExe/GitVersionExe.csproj", settings);
84-
}
85-
86-
frameworks = new[] { parameters.CoreFxVersion21, parameters.FullFxVersion472 };
56+
var frameworks = new[] { parameters.CoreFxVersion21, parameters.FullFxVersion472 };
8757

8858
// MsBuild Task
8959
foreach(var framework in frameworks)
@@ -117,37 +87,6 @@ Task("Pack-Prepare")
11787
CopyFiles(sourceFiles, portableDir);
11888
});
11989

120-
Task("Pack-Vsix")
121-
.IsDependentOn("Build-Vsix")
122-
.Does<BuildParameters>((parameters) =>
123-
{
124-
var workDir = "./src/GitVersionVsixTask";
125-
var idSuffix = parameters.IsStableRelease() ? "" : "-preview";
126-
var titleSuffix = parameters.IsStableRelease() ? "" : " (Preview)";
127-
var visibility = parameters.IsStableRelease() ? "Public" : "Preview";
128-
var taskId = parameters.IsStableRelease() ? "bab30d5c-39f3-49b0-a7db-9a5da6676eaa" : "dd065e3b-6aef-46af-845c-520195836b35";
129-
130-
ReplaceTextInFile(new FilePath(workDir + "/vss-extension.json"), "$idSuffix$", idSuffix);
131-
ReplaceTextInFile(new FilePath(workDir + "/vss-extension.json"), "$titleSuffix$", titleSuffix);
132-
ReplaceTextInFile(new FilePath(workDir + "/vss-extension.json"), "$visibility$", visibility);
133-
ReplaceTextInFile(new FilePath(workDir + "/GitVersionTask/task.json"), "$titleSuffix$", titleSuffix);
134-
135-
// update version number
136-
ReplaceTextInFile(new FilePath(workDir + "/vss-extension.json"), "$version$", parameters.Version.VsixVersion);
137-
UpdateTaskVersion(new FilePath(workDir + "/GitVersionTask/task.json"), taskId, parameters.Version.GitVersion);
138-
139-
// build and pack
140-
var settings = new TfxExtensionCreateSettings
141-
{
142-
ToolPath = workDir + "/node_modules/.bin/" + (parameters.IsRunningOnWindows ? "tfx.cmd" : "tfx"),
143-
WorkingDirectory = workDir,
144-
OutputPath = parameters.Paths.Directories.BuildArtifact
145-
};
146-
147-
settings.ManifestGlobs = new List<string>(){ "vss-extension.json" };
148-
TfxExtensionCreate(settings);
149-
});
150-
15190
Task("Pack-Gem")
15291
.IsDependentOn("Pack-Prepare")
15392
.Does<BuildParameters>((parameters) =>

build/publish.cake

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -81,44 +81,6 @@ Task("Publish-AzurePipeline")
8181
publishingError = true;
8282
});
8383

84-
Task("Publish-Vsix")
85-
.WithCriteria<BuildParameters>((context, parameters) => parameters.EnabledPublishVsix, "Publish-Vsix was disabled.")
86-
.WithCriteria<BuildParameters>((context, parameters) => parameters.IsRunningOnWindows, "Publish-Vsix works only on Windows agents.")
87-
.WithCriteria<BuildParameters>((context, parameters) => parameters.IsRunningOnAzurePipeline, "Publish-Vsix works only on AzurePipeline.")
88-
.WithCriteria<BuildParameters>((context, parameters) => parameters.IsStableRelease() || parameters.IsPreRelease(), "Publish-Vsix works only for releases.")
89-
.IsDependentOnWhen("Pack-Vsix", singleStageRun)
90-
.Does<BuildParameters>((parameters) =>
91-
{
92-
var token = parameters.Credentials.Tfx.Token;
93-
if(string.IsNullOrEmpty(token)) {
94-
throw new InvalidOperationException("Could not resolve Tfx token.");
95-
}
96-
97-
var workDir = "./src/GitVersionVsixTask";
98-
var settings = new TfxExtensionPublishSettings
99-
{
100-
ToolPath = workDir + "/node_modules/.bin/" + (parameters.IsRunningOnWindows ? "tfx.cmd" : "tfx"),
101-
AuthType = TfxAuthType.Pat,
102-
Token = token,
103-
ArgumentCustomization = args => args.Render() + " --no-wait-validation"
104-
};
105-
106-
NpmSet(new NpmSetSettings { WorkingDirectory = workDir, LogLevel = NpmLogLevel.Silent, Key = "progress", Value = "false" });
107-
NpmInstall(new NpmInstallSettings { WorkingDirectory = workDir, LogLevel = NpmLogLevel.Silent });
108-
109-
var vsixFilePath = parameters.Paths.Files.VsixOutputFilePath;
110-
if (!FileExists(vsixFilePath)) {
111-
vsixFilePath = GetFiles(parameters.Paths.Directories.BuildArtifact + "/*.vsix").First();
112-
}
113-
TfxExtensionPublish(vsixFilePath, settings);
114-
})
115-
.OnError(exception =>
116-
{
117-
Information("Publish-Vsix Task failed, but continuing with next Task...");
118-
Error(exception.Dump());
119-
publishingError = true;
120-
});
121-
12284
Task("Publish-Gem")
12385
.WithCriteria<BuildParameters>((context, parameters) => parameters.EnabledPublishGem, "Publish-Gem was disabled.")
12486
.WithCriteria<BuildParameters>((context, parameters) => parameters.IsRunningOnWindows, "Publish-Gem works only on Windows agents.")

build/stages/artifacts-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,4 @@ jobs:
1919
path: $(Build.SourcesDirectory)
2020
artifact: storage
2121
- script: dotnet cake build.cake --bootstrap && dotnet cake build.cake --target=Artifacts-Test --docker_distro=$(DISTRO) --docker_dotnetversion=$(DOTNET_VERSION)
22-
displayName: 'Docker Test Artifacts'
22+
displayName: '[Docker Test Artifacts]'

build/stages/build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
steps:
2-
- template: common-steps.yml
2+
- template: common-build-steps.yml
33
- task: UseRubyVersion@0
44
condition: ne( variables['Agent.OS'], 'Darwin' )
55
displayName: 'Use .Ruby >= 2.5'
66
inputs:
77
versionSpec: '>= 2.5'
88
addToPath: true
99
- script: dotnet cake build.cake --bootstrap && dotnet cake build.cake --target=Pack
10-
displayName: 'Cake build & pack'
10+
displayName: '[Cake build & pack]'
1111
- publish: $(System.DefaultWorkingDirectory)
1212
displayName: 'Upload pipeline artifacts'
1313
condition: and(succeeded(), eq( variables['Agent.OS'], 'Windows_NT' ))

build/stages/common-build-steps.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
steps:
2+
- task: Cache@2
3+
inputs:
4+
key: 'tools | "$(Agent.OS)" | build.cake'
5+
path: tools
6+
displayName: Cache Cake tools
7+
- task: UseDotNet@2
8+
displayName: 'Use .NET Core sdk 2.1'
9+
inputs:
10+
packageType: sdk
11+
version: 2.1.802
12+
- task: UseDotNet@2
13+
displayName: 'Use .NET Core sdk 3.1'
14+
inputs:
15+
packageType: sdk
16+
version: 3.1.100
17+
- task: Bash@3
18+
displayName: 'Env Vars'
19+
inputs:
20+
targetType: 'inline'
21+
script: 'env | sort'
22+
- task: CmdLine@2
23+
condition: eq( variables['Agent.OS'], 'Darwin' )
24+
displayName: 'Use mono'
25+
inputs:
26+
script: |
27+
SYMLINK=6.4.0
28+
MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$SYMLINK
29+
echo "##vso[task.setvariable variable=DYLD_FALLBACK_LIBRARY_PATH;]$MONOPREFIX/lib:/lib:/usr/lib:$DYLD_LIBRARY_FALLBACK_PATH"
30+
echo "##vso[task.setvariable variable=PKG_CONFIG_PATH;]$MONOPREFIX/lib/pkgconfig:$MONOPREFIX/share/pkgconfig:$PKG_CONFIG_PATH"
31+
echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH"
32+
sudo rm /Library/Frameworks/Mono.framework/Versions/Current
33+
sudo ln -s $MONOPREFIX /Library/Frameworks/Mono.framework/Versions/Current
34+
- script: dotnet tool install --global Cake.Tool
35+
displayName: 'Install Cake tool'

0 commit comments

Comments
 (0)