Skip to content

Commit c3dbe3f

Browse files
Updated build to use RSG standard pipelines
1 parent 5a1bb02 commit c3dbe3f

File tree

4 files changed

+31
-267
lines changed

4 files changed

+31
-267
lines changed

.azure-pipelines.yml

Lines changed: 27 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,29 @@
1-
# Starter pipeline
2-
# Start with a minimal pipeline that you can customize to build and deploy your code.
3-
# Add steps that build, run tests, deploy, and more:
4-
# https://aka.ms/yaml
5-
jobs:
6-
- job: Windows
7-
pool:
8-
vmImage: vs2017-win2016
9-
steps:
10-
- powershell: .\build.ps1
11-
- task: PublishTestResults@2
12-
displayName: 'Publish Test Results'
13-
inputs:
14-
testRunner: XUnit
15-
testResultsFiles: 'artifacts/tests/*.xml'
16-
mergeTestResults: true
17-
testRunTitle: '$(Agent.OS)'
18-
- task: PublishBuildArtifacts@1
19-
displayName: 'Publish Artifact: $(Agent.OS) coverage'
20-
inputs:
21-
PathtoPublish: '$(System.DefaultWorkingDirectory)\coverage\'
22-
ArtifactName: '$(Agent.OS)-coverage'
23-
- task: PublishBuildArtifacts@1
24-
displayName: 'Publish Artifact: $(Agent.OS) nuget'
25-
inputs:
26-
PathtoPublish: '$(System.DefaultWorkingDirectory)\nuget\'
27-
ArtifactName: '$(Agent.OS)-nuget'
1+
resources:
2+
repositories:
3+
- repository: rsg
4+
type: github
5+
name: RocketSurgeonsGuild/AzureDevopsTemplates
6+
# ref: refs/tags/v0.2.7
7+
endpoint: github
288

29-
- job: macOS
30-
pool:
31-
vmImage: xcode9-macos10.13
32-
steps:
33-
- script: |
34-
chmod 755 ./build.sh
35-
./build.sh
36-
- task: PublishTestResults@2
37-
displayName: 'Publish Test Results'
38-
inputs:
39-
testRunner: XUnit
40-
testResultsFiles: 'artifacts/tests/*.xml'
41-
mergeTestResults: true
42-
testRunTitle: '$(Agent.OS)'
43-
- task: PublishBuildArtifacts@1
44-
displayName: 'Publish Artifact: $(Agent.OS) coverage'
45-
inputs:
46-
PathtoPublish: '$(System.DefaultWorkingDirectory)\coverage\'
47-
ArtifactName: '$(Agent.OS)-coverage'
48-
- task: PublishBuildArtifacts@1
49-
displayName: 'Publish Artifact: $(Agent.OS) nuget'
50-
inputs:
51-
PathtoPublish: '$(System.DefaultWorkingDirectory)\nuget\'
52-
ArtifactName: '$(Agent.OS)-nuget'
9+
variables:
10+
Configuration: Release
11+
Verbosity: Normal
12+
DotNetVersion: "2.1.500"
13+
CakeVersion: "0.30.0"
14+
NuGetVersion: '4.7.1'
15+
Coverage: "$(Agent.BuildDirectory)/c"
16+
VstsCoverage: "$(Coverage)"
17+
Artifacts: $(Build.ArtifactStagingDirectory)
18+
VstsArtifacts: "$(Artifacts)"
19+
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: "true"
5320

54-
- job: Linux
55-
pool:
56-
vmImage: ubuntu-16.04
57-
steps:
58-
- script: |
59-
chmod 755 ./build.sh
60-
./build.sh
61-
- task: PublishTestResults@2
62-
displayName: 'Publish Test Results'
63-
inputs:
64-
testRunner: XUnit
65-
testResultsFiles: 'artifacts/tests/*.xml'
66-
mergeTestResults: true
67-
testRunTitle: '$(Agent.OS)'
68-
- task: PublishBuildArtifacts@1
69-
displayName: 'Publish Artifact: $(Agent.OS) coverage'
70-
inputs:
71-
PathtoPublish: '$(System.DefaultWorkingDirectory)\coverage\'
72-
ArtifactName: '$(Agent.OS)-coverage'
73-
- task: PublishBuildArtifacts@1
74-
displayName: 'Publish Artifact: $(Agent.OS) nuget'
75-
inputs:
76-
PathtoPublish: '$(System.DefaultWorkingDirectory)\nuget\'
77-
ArtifactName: '$(Agent.OS)-nuget'
21+
jobs:
22+
- template: pipeline/cake.yml@rsg
23+
parameters:
24+
Configuration: $(Configuration)
25+
Verbosity: $(Verbosity)
26+
DotNetVersion: $(DotNetVersion)
27+
CakeVersion: $(CakeVersion)
28+
NuGetVersion: $(NuGetVersion)
29+
Script: build.cake

build.cake

Lines changed: 3 additions & 157 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,4 @@
1-
#tool "nuget:?package=GitVersion.CommandLine&prerelease&version=4.0.0-beta0012"
2-
#tool "nuget:?package=xunit.runner.console"
3-
#tool "nuget:?package=JetBrains.dotCover.CommandLineTools&version=2018.1.0"
4-
#load "tasks/variables.cake";
5-
6-
var target = Argument("target", "Default");
7-
var configuration = Argument("configuration", "Release");
8-
var artifacts = new DirectoryPath("./artifacts").MakeAbsolute(Context.Environment);
9-
10-
Task("Clean")
11-
.Does(() =>
12-
{
13-
EnsureDirectoryExists(artifacts);
14-
CleanDirectory(artifacts);
15-
});
1+
#load "nuget:?package=Rocket.Surgery.Cake.Library&version=0.8.6";
162

173
Task("Submodules")
184
.Does(() => {
@@ -34,149 +20,9 @@ Task("Embed MediatR")
3420
}
3521
});
3622

37-
Task("Restore (Unix)")
38-
.WithCriteria(IsRunningOnUnix)
39-
.Does(() =>
40-
{
41-
MSBuild("./LSP.sln", settings => settings.SetConfiguration(configuration).WithTarget("Restore"));
42-
});
43-
44-
Task("Restore (Windows)")
45-
.WithCriteria(IsRunningOnWindows)
46-
.Does(() =>
47-
{
48-
DotNetCoreRestore();
49-
});
50-
51-
Task("Restore")
52-
.IsDependentOn("Restore (Unix)")
53-
.IsDependentOn("Restore (Windows)");
54-
55-
Task("Build")
56-
.IsDependentOn("Restore")
57-
.DoesForEach(GetFiles("src/**/*.csproj").Concat(GetFiles("test/**/*.csproj")), (project) =>
58-
{
59-
MSBuild(project, settings =>
60-
settings
61-
.SetConfiguration(configuration)
62-
.WithTarget("Build"));
63-
});
64-
65-
Task("TestSetup")
66-
.Does(() => {
67-
CleanDirectory(artifacts + "/tests");
68-
CleanDirectory(artifacts + "/coverage");
69-
EnsureDirectoryExists(artifacts + "/tests");
70-
EnsureDirectoryExists(artifacts + "/coverage");
71-
});
72-
73-
Task("Test (Unix)")
74-
.WithCriteria(IsRunningOnUnix)
75-
.IsDependentOn("TestSetup")
76-
.IsDependentOn("Build")
77-
.DoesForEach(GetFiles("test/*/*.csproj"), (testProject) =>
78-
{
79-
DotNetCoreTest(
80-
testProject.GetDirectory().FullPath,
81-
new DotNetCoreTestSettings() {
82-
NoBuild = true,
83-
Configuration = configuration,
84-
Framework = "netcoreapp2.1",
85-
EnvironmentVariables = GitVersionEnvironmentVariables,
86-
TestAdapterPath = ".",
87-
Logger = $"\"xunit;LogFilePath={string.Format("{0}/tests/{1}.xml", artifacts, testProject.GetFilenameWithoutExtension())}\"",
88-
ArgumentCustomization = args => args.Append("/p:CollectCoverage=true"),
89-
}
90-
);
91-
});
92-
93-
Task("Test (Windows)")
94-
.WithCriteria(IsRunningOnWindows)
95-
.IsDependentOn("TestSetup")
96-
.IsDependentOn("Build")
97-
.DoesForEach(GetFiles("test/*/*.csproj"), (testProject) =>
98-
{
99-
DotCoverCover(tool => {
100-
tool.DotNetCoreTest(
101-
testProject.GetDirectory().FullPath,
102-
new DotNetCoreTestSettings() {
103-
NoBuild = true,
104-
Configuration = configuration,
105-
Framework = "netcoreapp2.1",
106-
EnvironmentVariables = GitVersionEnvironmentVariables,
107-
TestAdapterPath = ".",
108-
Logger = $"\"xunit;LogFilePath={string.Format("{0}/tests/{1}.xml", artifacts, testProject.GetFilenameWithoutExtension())}\"",
109-
// ArgumentCustomization = args => args.Append("/p:CollectCoverage=true"),
110-
});
111-
},
112-
artifacts + "/coverage/coverage-"+ testProject.GetFilenameWithoutExtension() + ".dcvr",
113-
new DotCoverCoverSettings() {
114-
TargetWorkingDir = testProject.GetDirectory(),
115-
WorkingDirectory = testProject.GetDirectory(),
116-
EnvironmentVariables = GitVersionEnvironmentVariables,
117-
}
118-
.WithFilter("+:OmniSharp.*")
119-
);
120-
})
121-
.Finally(() => {
122-
DotCoverMerge(
123-
GetFiles(artifacts + "/coverage/*.dcvr"),
124-
artifacts + "/coverage/coverage.dcvr"
125-
);
126-
127-
DotCoverReport(
128-
artifacts + "/coverage/coverage.dcvr",
129-
new FilePath(artifacts + "/coverage/coverage.html"),
130-
new DotCoverReportSettings {
131-
ReportType = DotCoverReportType.HTML
132-
}
133-
);
134-
135-
DotCoverReport(
136-
artifacts + "/coverage/coverage.dcvr",
137-
new FilePath(artifacts + "/coverage/coverage.xml"),
138-
new DotCoverReportSettings {
139-
ReportType = DotCoverReportType.DetailedXML
140-
}
141-
);
142-
143-
var withBom = System.IO.File.ReadAllText(artifacts + "/coverage/coverage.xml");
144-
System.IO.File.WriteAllText(artifacts + "/coverage/coverage.xml", withBom.Replace(_byteOrderMarkUtf8, ""));
145-
});
146-
147-
Task("Test")
148-
.IsDependentOn("Test (Unix)")
149-
.IsDependentOn("Test (Windows)");
150-
151-
Task("Pack")
152-
.WithCriteria(IsRunningOnWindows) // TODO: Make work on travis
153-
.IsDependentOn("Build")
154-
.Does(() => EnsureDirectoryExists(artifacts + "/nuget"))
155-
.DoesForEach(GetFiles("src/*/*.csproj"), (project) => {
156-
DotNetCorePack(project.FullPath, new DotNetCorePackSettings
157-
{
158-
NoBuild = true,
159-
IncludeSymbols = true,
160-
Configuration = configuration,
161-
EnvironmentVariables = GitVersionEnvironmentVariables,
162-
OutputDirectory = artifacts + "/nuget"
163-
});
164-
});
165-
166-
Task("GitVersion")
167-
.Does(() => {
168-
GitVersion(new GitVersionSettings() {
169-
OutputType = GitVersionOutput.BuildServer
170-
});
171-
});
172-
17323
Task("Default")
17424
.IsDependentOn("Submodules")
17525
.IsDependentOn("Embed MediatR")
176-
.IsDependentOn("GitVersion")
177-
.IsDependentOn("Clean")
178-
.IsDependentOn("Build")
179-
.IsDependentOn("Test")
180-
.IsDependentOn("Pack");
26+
.IsDependentOn("dotnetcore");
18127

182-
RunTarget(target);
28+
RunTarget(Target);

tasks/variables.cake

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

tools/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="Cake" version="0.23.0" />
3+
<package id="Cake" version="0.30.0" />
44
</packages>

0 commit comments

Comments
 (0)