Skip to content

Commit 65f3df6

Browse files
eabaAaronontheweb
andauthored
Nuke build (#47)
Migrated from FAKE to NUKE Co-authored-by: Aaron Stannard <[email protected]>
1 parent f5e06a7 commit 65f3df6

28 files changed

+1142
-1028
lines changed

Diff for: .github/workflows/Docker_build.yml

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# ------------------------------------------------------------------------------
2+
# <auto-generated>
3+
#
4+
# This code was generated.
5+
#
6+
# - To turn off auto-generation set:
7+
#
8+
# [CustomGitHubActions (AutoGenerate = false)]
9+
#
10+
# - To trigger manual generation invoke:
11+
#
12+
# nuke --generate-configuration GitHubActions_Docker_build --host GitHubActions
13+
#
14+
# </auto-generated>
15+
# ------------------------------------------------------------------------------
16+
17+
name: Docker_build
18+
19+
on:
20+
push:
21+
branches:
22+
- master
23+
- dev
24+
pull_request:
25+
branches:
26+
- master
27+
- dev
28+
29+
jobs:
30+
ubuntu-latest:
31+
name: ubuntu-latest
32+
runs-on: ubuntu-latest
33+
steps:
34+
- uses: actions/checkout@v1
35+
- uses: actions/setup-dotnet@v1
36+
with:
37+
dotnet-version: 5.0.*
38+
- uses: actions/setup-dotnet@v1
39+
with:
40+
dotnet-version: 6.0.*
41+
- name: Cache .nuke/temp, ~/.nuget/packages
42+
uses: actions/cache@v2
43+
with:
44+
path: |
45+
.nuke/temp
46+
~/.nuget/packages
47+
key: ${{ runner.os }}-${{ hashFiles('global.json', 'src/**/*.csproj') }}
48+
- name: Run './build.cmd BuildImage'
49+
run: ./build.cmd BuildImage
50+
env:
51+
Docker_Username: ${{ secrets.DOCKER_USERNAME }}
52+
Docker_Password: ${{ secrets.DOCKER_PASSWORD }}
53+
GITHUB_CONTEXT: ${{ toJSON(github) }}

Diff for: .github/workflows/Windows_release.yml

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# ------------------------------------------------------------------------------
2+
# <auto-generated>
3+
#
4+
# This code was generated.
5+
#
6+
# - To turn off auto-generation set:
7+
#
8+
# [CustomGitHubActions (AutoGenerate = false)]
9+
#
10+
# - To trigger manual generation invoke:
11+
#
12+
# nuke --generate-configuration GitHubActions_Windows_release --host GitHubActions
13+
#
14+
# </auto-generated>
15+
# ------------------------------------------------------------------------------
16+
17+
name: Windows_release
18+
19+
on:
20+
push:
21+
branches:
22+
- 'refs/tags/*'
23+
24+
jobs:
25+
windows-latest:
26+
name: windows-latest
27+
runs-on: windows-latest
28+
steps:
29+
- uses: actions/checkout@v1
30+
- uses: actions/setup-dotnet@v1
31+
with:
32+
dotnet-version: 5.0.*
33+
- uses: actions/setup-dotnet@v1
34+
with:
35+
dotnet-version: 6.0.*
36+
- name: Cache .nuke/temp, ~/.nuget/packages
37+
uses: actions/cache@v2
38+
with:
39+
path: |
40+
.nuke/temp
41+
~/.nuget/packages
42+
key: ${{ runner.os }}-${{ hashFiles('global.json', 'src/**/*.csproj') }}
43+
- name: Run './build.cmd BuildImage'
44+
run: ./build.cmd BuildImage
45+
env:
46+
Nuget_Key: ${{ secrets.NUGET_KEY }}
47+
GITHUB_CONTEXT: ${{ toJSON(github) }}

Diff for: .github/workflows/pr_validation.yml

+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# ------------------------------------------------------------------------------
2+
# <auto-generated>
3+
#
4+
# This code was generated.
5+
#
6+
# - To turn off auto-generation set:
7+
#
8+
# [CustomGitHubActions (AutoGenerate = false)]
9+
#
10+
# - To trigger manual generation invoke:
11+
#
12+
# nuke --generate-configuration GitHubActions_pr_validation --host GitHubActions
13+
#
14+
# </auto-generated>
15+
# ------------------------------------------------------------------------------
16+
17+
name: pr_validation
18+
19+
on:
20+
push:
21+
branches:
22+
- master
23+
- dev
24+
pull_request:
25+
branches:
26+
- master
27+
- dev
28+
29+
jobs:
30+
windows-latest:
31+
name: windows-latest
32+
runs-on: windows-latest
33+
steps:
34+
- uses: actions/checkout@v1
35+
- uses: actions/setup-dotnet@v1
36+
with:
37+
dotnet-version: 5.0.*
38+
- uses: actions/setup-dotnet@v1
39+
with:
40+
dotnet-version: 6.0.*
41+
- name: Cache .nuke/temp, ~/.nuget/packages
42+
uses: actions/cache@v2
43+
with:
44+
path: |
45+
.nuke/temp
46+
~/.nuget/packages
47+
key: ${{ runner.os }}-${{ hashFiles('global.json', 'src/**/*.csproj') }}
48+
- name: Run './build.cmd Tests'
49+
run: ./build.cmd Tests
50+
env:
51+
GITHUB_CONTEXT: ${{ toJSON(github) }}
52+
ubuntu-latest:
53+
name: ubuntu-latest
54+
runs-on: ubuntu-latest
55+
steps:
56+
- uses: actions/checkout@v1
57+
- uses: actions/setup-dotnet@v1
58+
with:
59+
dotnet-version: 5.0.*
60+
- uses: actions/setup-dotnet@v1
61+
with:
62+
dotnet-version: 6.0.*
63+
- name: Cache .nuke/temp, ~/.nuget/packages
64+
uses: actions/cache@v2
65+
with:
66+
path: |
67+
.nuke/temp
68+
~/.nuget/packages
69+
key: ${{ runner.os }}-${{ hashFiles('global.json', 'src/**/*.csproj') }}
70+
- name: Run './build.cmd Tests'
71+
run: ./build.cmd Tests
72+
env:
73+
GITHUB_CONTEXT: ${{ toJSON(github) }}

Diff for: .gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# Custom
22
tools/
3-
build/
43
.nuget/
54
.dotnet/
65
.idea/

Diff for: .nuke/build.schema.json

+190
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-04/schema#",
3+
"title": "Build Schema",
4+
"$ref": "#/definitions/build",
5+
"definitions": {
6+
"build": {
7+
"type": "object",
8+
"properties": {
9+
"Configuration": {
10+
"type": "string",
11+
"description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)",
12+
"enum": [
13+
"Debug",
14+
"Release"
15+
]
16+
},
17+
"Continue": {
18+
"type": "boolean",
19+
"description": "Indicates to continue a previously failed build attempt"
20+
},
21+
"DockerPassword": {
22+
"type": "string",
23+
"default": "Secrets must be entered via 'nuke :secret [profile]'"
24+
},
25+
"DockerRegistryUrl": {
26+
"type": "string"
27+
},
28+
"DockerUsername": {
29+
"type": "string",
30+
"default": "Secrets must be entered via 'nuke :secret [profile]'"
31+
},
32+
"Help": {
33+
"type": "boolean",
34+
"description": "Shows the help text for this build assembly"
35+
},
36+
"Host": {
37+
"type": "string",
38+
"description": "Host for execution. Default is 'automatic'",
39+
"enum": [
40+
"AppVeyor",
41+
"AzurePipelines",
42+
"Bamboo",
43+
"Bitrise",
44+
"GitHubActions",
45+
"GitLab",
46+
"Jenkins",
47+
"Rider",
48+
"SpaceAutomation",
49+
"TeamCity",
50+
"Terminal",
51+
"TravisCI",
52+
"VisualStudio",
53+
"VSCode"
54+
]
55+
},
56+
"NoLogo": {
57+
"type": "boolean",
58+
"description": "Disables displaying the NUKE logo"
59+
},
60+
"NugetKey": {
61+
"type": "string",
62+
"default": "Secrets must be entered via 'nuke :secret [profile]'"
63+
},
64+
"NugetPublishUrl": {
65+
"type": "string"
66+
},
67+
"Partition": {
68+
"type": "string",
69+
"description": "Partition to use on CI"
70+
},
71+
"Plan": {
72+
"type": "boolean",
73+
"description": "Shows the execution plan (HTML)"
74+
},
75+
"Port": {
76+
"type": "integer"
77+
},
78+
"Profile": {
79+
"type": "array",
80+
"description": "Defines the profiles to load",
81+
"items": {
82+
"type": "string"
83+
}
84+
},
85+
"ReleaseBranch": {
86+
"type": "string",
87+
"description": "The final release branch"
88+
},
89+
"Root": {
90+
"type": "string",
91+
"description": "Root directory during build execution"
92+
},
93+
"SignClientSecret": {
94+
"type": "string",
95+
"default": "Secrets must be entered via 'nuke :secret [profile]'"
96+
},
97+
"SignClientUser": {
98+
"type": "string",
99+
"default": "Secrets must be entered via 'nuke :secret [profile]'"
100+
},
101+
"SigningDescription": {
102+
"type": "string"
103+
},
104+
"SigningName": {
105+
"type": "string"
106+
},
107+
"SigningUrl": {
108+
"type": "string"
109+
},
110+
"Skip": {
111+
"type": "array",
112+
"description": "List of targets to be skipped. Empty list skips all dependencies",
113+
"items": {
114+
"type": "string",
115+
"enum": [
116+
"All",
117+
"BuildAndPush",
118+
"BuildAndServeDocs",
119+
"BuildImage",
120+
"Clean",
121+
"Compile",
122+
"DocFxBuild",
123+
"DockerLogin",
124+
"DocsInit",
125+
"DocsMetadata",
126+
"Install",
127+
"NBench",
128+
"Nuget",
129+
"PublishCode",
130+
"PublishNuget",
131+
"PushImage",
132+
"Restore",
133+
"RunChangelog",
134+
"ServeDocs",
135+
"SignAndPublishPackage",
136+
"SignClient",
137+
"SignPackages",
138+
"Tests"
139+
]
140+
}
141+
},
142+
"SymbolsPublishUrl": {
143+
"type": "string"
144+
},
145+
"Target": {
146+
"type": "array",
147+
"description": "List of targets to be invoked. Default is '{default_target}'",
148+
"items": {
149+
"type": "string",
150+
"enum": [
151+
"All",
152+
"BuildAndPush",
153+
"BuildAndServeDocs",
154+
"BuildImage",
155+
"Clean",
156+
"Compile",
157+
"DocFxBuild",
158+
"DockerLogin",
159+
"DocsInit",
160+
"DocsMetadata",
161+
"Install",
162+
"NBench",
163+
"Nuget",
164+
"PublishCode",
165+
"PublishNuget",
166+
"PushImage",
167+
"Restore",
168+
"RunChangelog",
169+
"ServeDocs",
170+
"SignAndPublishPackage",
171+
"SignClient",
172+
"SignPackages",
173+
"Tests"
174+
]
175+
}
176+
},
177+
"Verbosity": {
178+
"type": "string",
179+
"description": "Logging verbosity during build execution. Default is 'Normal'",
180+
"enum": [
181+
"Minimal",
182+
"Normal",
183+
"Quiet",
184+
"Verbose"
185+
]
186+
}
187+
}
188+
}
189+
}
190+
}

Diff for: .nuke/parameters.json

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"$schema": "./build.schema.json"
3+
}

Diff for: CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
## [0.1.0] / 14 January 2022
2+
- First release

0 commit comments

Comments
 (0)