Skip to content

Commit d9272b5

Browse files
committed
Add CI pipeline for plugin builds
1 parent 3be7d6b commit d9272b5

File tree

4 files changed

+124
-19
lines changed

4 files changed

+124
-19
lines changed

.github/workflows/ci-plugin.yml

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: CI Plugin
2+
3+
on:
4+
push:
5+
branches:
6+
- preview
7+
paths:
8+
- '.github/workflows/ci-plugin.yml'
9+
- 'src/Plugins/**'
10+
- 'build-plugin.cake'
11+
pull_request:
12+
branches:
13+
- preview
14+
paths:
15+
- '.github/workflows/ci-plugin.yml'
16+
- 'src/Plugins/**'
17+
- 'build-plugin.cake'
18+
jobs:
19+
build:
20+
runs-on: ubuntu-latest
21+
if: github.repository_owner == 'Next-Fast'
22+
23+
steps:
24+
- name: Checkout
25+
uses: actions/checkout@v4
26+
27+
- uses: actions/cache@v3
28+
with:
29+
path: ~/.nuget/packages
30+
key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
31+
restore-keys: |
32+
${{ runner.os }}-nuget-
33+
34+
- name: Setup .NET
35+
uses: actions/setup-dotnet@v2
36+
with:
37+
dotnet-version: 9.x
38+
39+
- name: Run the Cake script
40+
uses: cake-build/cake-action@v3
41+
with:
42+
verbosity: Minimal
43+
script-path: ./build-plugin.cake
44+

.github/workflows/ci.yml

+3-11
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ on:
66
- preview
77
paths:
88
- '.github/workflows/ci.yml'
9-
- 'src/**/**'
9+
- 'src/Impostor*/**'
1010
- 'build.cake'
1111
pull_request:
1212
branches:
1313
- preview
1414
paths:
1515
- '.github/workflows/ci.yml'
16-
- 'src/**/**'
16+
- 'src/Impostor*/**'
1717
- 'build.cake'
1818
jobs:
1919
build:
@@ -40,15 +40,7 @@ jobs:
4040
uses: cake-build/cake-action@v3
4141
with:
4242
verbosity: Minimal
43-
44-
- uses: softprops/action-gh-release@v1
45-
if: github.ref_type == 'tag'
46-
with:
47-
draft: true
48-
files: |
49-
./build/*.zip
50-
./build/*.tar.gz
51-
./build/*.nupkg
43+
script-path: ./build.cake
5244

5345
- name: Publish to NuGet
5446
run: |

build-plugin.cake

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
#addin "nuget:?package=SharpZipLib&Version=1.3.3"
2+
#addin "nuget:?package=Cake.Compression&Version=0.3.0"
3+
#addin "nuget:?package=Cake.FileHelpers&Version=5.0.0"
4+
5+
var workflow = BuildSystem.GitHubActions.Environment.Workflow;
6+
var buildId = workflow.RunNumber;
7+
var tag = workflow.RefType == GitHubActionsRefType.Tag ? workflow.RefName : null;
8+
9+
var buildVersion = FindRegexMatchGroupInFile("./src/Directory.Build.props", @"\<VersionPrefix\>(.*?)\<\/VersionPrefix\>", 1, System.Text.RegularExpressions.RegexOptions.None).Value;
10+
var buildDir = MakeAbsolute(Directory("./build"));
11+
12+
var target = Argument("target", "Build");
13+
var configuration = Argument("configuration", "Release");
14+
15+
var msbuildSettings = new DotNetMSBuildSettings();
16+
17+
if (tag != null)
18+
{
19+
if (tag[1..] != buildVersion) throw new Exception("Tag version has to be the same as VersionPrefix in Directory.Build.props");
20+
msbuildSettings.Version = buildVersion;
21+
}
22+
else if (buildId != 0)
23+
{
24+
msbuildSettings.VersionSuffix = "ci." + buildId;
25+
buildVersion += "_ci." + buildId;
26+
}
27+
else
28+
{
29+
buildVersion += "_dev";
30+
}
31+
32+
//////////////////////////////////////////////////////////////////////
33+
// TASKS
34+
//////////////////////////////////////////////////////////////////////
35+
36+
Task("Clean")
37+
.Does(() => {
38+
if (DirectoryExists(buildDir)) {
39+
DeleteDirectory(buildDir, new DeleteDirectorySettings {
40+
Recursive = true
41+
});
42+
}
43+
});
44+
45+
Task("Restore")
46+
.Does(() => {
47+
DotNetRestore("./src/Impostor.sln");
48+
});
49+
50+
Task("Build")
51+
.IsDependentOn("Clean")
52+
.IsDependentOn("Restore")
53+
.Does(() => {
54+
DotNetBuild("./src/Plugins/SelfHttpMatchmaker/SelfHttpMatchmaker.csproj", new DotNetBuildSettings {
55+
OutputDirectory = buildDir,
56+
Configuration = configuration,
57+
MSBuildSettings = msbuildSettings
58+
});
59+
60+
DotNetBuild("./src/Plugins/GameCodePlugin/GameCodePlugin.csproj", new DotNetBuildSettings {
61+
OutputDirectory = buildDir,
62+
Configuration = configuration,
63+
MSBuildSettings = msbuildSettings
64+
});
65+
66+
if (BuildSystem.GitHubActions.IsRunningOnGitHubActions) {
67+
BuildSystem.GitHubActions.Commands.UploadArtifact(buildDir + "/SelfHttpMatchmaker.dll", "SelfHttpMatchmaker");
68+
69+
BuildSystem.GitHubActions.Commands.UploadArtifact(buildDir + "/GameCodePlugin.dll", "GameCodePlugin");
70+
}
71+
});
72+
73+
//////////////////////////////////////////////////////////////////////
74+
// EXECUTION
75+
//////////////////////////////////////////////////////////////////////
76+
77+
RunTarget(target);

src/Impostor.sln

-8
Original file line numberDiff line numberDiff line change
@@ -58,21 +58,13 @@ Global
5858
{5457D76E-2EF7-441F-88CF-5E5A2FBE94FC}.Release|x86.ActiveCfg = Release|Any CPU
5959
{5457D76E-2EF7-441F-88CF-5E5A2FBE94FC}.Release|x86.Build.0 = Release|Any CPU
6060
{7E912EBE-52F5-4D6D-9203-38069456D9B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
61-
{7E912EBE-52F5-4D6D-9203-38069456D9B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
6261
{7E912EBE-52F5-4D6D-9203-38069456D9B9}.Debug|x86.ActiveCfg = Debug|Any CPU
63-
{7E912EBE-52F5-4D6D-9203-38069456D9B9}.Debug|x86.Build.0 = Debug|Any CPU
6462
{7E912EBE-52F5-4D6D-9203-38069456D9B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
65-
{7E912EBE-52F5-4D6D-9203-38069456D9B9}.Release|Any CPU.Build.0 = Release|Any CPU
6663
{7E912EBE-52F5-4D6D-9203-38069456D9B9}.Release|x86.ActiveCfg = Release|Any CPU
67-
{7E912EBE-52F5-4D6D-9203-38069456D9B9}.Release|x86.Build.0 = Release|Any CPU
6864
{F19C0CC2-55FE-41D9-9372-8361EAE1B356}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
69-
{F19C0CC2-55FE-41D9-9372-8361EAE1B356}.Debug|Any CPU.Build.0 = Debug|Any CPU
7065
{F19C0CC2-55FE-41D9-9372-8361EAE1B356}.Debug|x86.ActiveCfg = Debug|Any CPU
71-
{F19C0CC2-55FE-41D9-9372-8361EAE1B356}.Debug|x86.Build.0 = Debug|Any CPU
7266
{F19C0CC2-55FE-41D9-9372-8361EAE1B356}.Release|Any CPU.ActiveCfg = Release|Any CPU
73-
{F19C0CC2-55FE-41D9-9372-8361EAE1B356}.Release|Any CPU.Build.0 = Release|Any CPU
7467
{F19C0CC2-55FE-41D9-9372-8361EAE1B356}.Release|x86.ActiveCfg = Release|Any CPU
75-
{F19C0CC2-55FE-41D9-9372-8361EAE1B356}.Release|x86.Build.0 = Release|Any CPU
7668
EndGlobalSection
7769
GlobalSection(SolutionProperties) = preSolution
7870
HideSolutionNode = FALSE

0 commit comments

Comments
 (0)