Skip to content

Commit bdefe55

Browse files
PerkseyHurricanKaisilkdotnetdotnet-bot
authored
ANGLE, SwiftShader, and Vulkan Loader prebuilts (#746)
* This pipeline _will_ fail, but want to see how far it will get * Update build.sh * Remove workflow autogeneration, revert build script changes * Fix pipeline * Move temp folder * Recursive checkout * Recursive checkout except for one private Google submodule * Update SwiftShader.yml * Ensure we checkout a branch maybe? * Use checkout v2 * Install xcb * Sudo install xcb * Setup .NET 6 * Checkout with the right token * Don't do a parallelised run in CI - slaughters the runner * Update SwiftShader.yml * Add ANGLE * WHY * Make the damned thing executable * No idea why we need PHP for Apache installed to build ANGLE but why not * Run as sudo for good measure * Attempt to diagnose janky apt setup * Wtf is going on * Use -X theirs instead of -s theirs which doesn't exist * Ensure we're not affected by other [NUKE] changes harder * Update ANGLE binaries (#749) * New binaries for ANGLE on Darwin 20.6.0 Darwin Kernel Version 20.6.0: Wed Nov 10 22:23:07 PST 2021; root:xnu-7195.141.14~1/RELEASE_X86_64 * New binaries for ANGLE on Linux 5.11.0-1022-azure #23~20.04.1-Ubuntu SMP Fri Nov 19 10:20:52 UTC 2021 Co-authored-by: The Silk.NET Automaton <9011267+dotnet-bot@users.noreply.github.com> * You are the bane of my existence. * Allow overwrites * Add Vulkan loader * Add a workflow for Vulkan Loader * cont'd * I'm stupid * Install Wayland * Install X11 * Pull... fkn race conditions man! * Update gitignore for good measure * Install different packages? * Glob the correct files, stop wasting Actions minutes unnecessarily * Update Vulkan Loader binaries (#763) * New binaries for Vulkan Loader on Microsoft Windows 10.0.17763 * New binaries for Vulkan Loader on Microsoft Windows 10.0.17763 Co-authored-by: The Silk.NET Automaton <9011267+dotnet-bot@users.noreply.github.com> * No fail fast for SwiftShader * No fail fast for ANGLE * No fail fast for Vulkan Loader * Remove workflow file in push paths on Vulkan Loader * Remove workflow file in push paths on SwiftShader * Remove workflow file in push paths on ANGLE * New binaries for Vulkan Loader on Microsoft Windows 10.0.17763 (#764) Co-authored-by: The Silk.NET Automaton <9011267+dotnet-bot@users.noreply.github.com> * Update SwiftShader binaries (#747) * New binaries for SwiftShader on Windows * New binaries for SwiftShader on Microsoft Windows 10.0.17763 * New binaries for SwiftShader on Linux 5.11.0-1022-azure #23~20.04.1-Ubuntu SMP Fri Nov 19 10:20:52 UTC 2021 * New binaries for SwiftShader on Darwin 20.6.0 Darwin Kernel Version 20.6.0: Wed Nov 10 22:23:07 PST 2021; root:xnu-7195.141.14~1/RELEASE_X86_64 * New binaries for SwiftShader on Microsoft Windows 10.0.17763 * New binaries for SwiftShader on Linux 5.11.0-1022-azure #23~20.04.1-Ubuntu SMP Fri Nov 19 10:20:52 UTC 2021 * New binaries for SwiftShader on Darwin 20.6.0 Darwin Kernel Version 20.6.0: Wed Nov 10 22:23:07 PST 2021; root:xnu-7195.141.14~1/RELEASE_X86_64 * New binaries for SwiftShader on Microsoft Windows 10.0.17763 * New binaries for SwiftShader on Linux 5.11.0-1022-azure #23~20.04.1-Ubuntu SMP Fri Nov 19 10:20:52 UTC 2021 * New binaries for SwiftShader on Darwin 20.6.0 Darwin Kernel Version 20.6.0: Wed Nov 10 22:23:07 PST 2021; root:xnu-7195.141.14~1/RELEASE_X86_64 * New binaries for SwiftShader on Microsoft Windows 10.0.17763 * New binaries for SwiftShader on Linux 5.11.0-1022-azure #23~20.04.1-Ubuntu SMP Fri Nov 19 10:20:52 UTC 2021 Co-authored-by: The Silk.NET Automaton <9011267+dotnet-bot@users.noreply.github.com> Co-authored-by: Dylan Perks <dmp9biz@gmail.com> * Add packages for the new binaries * Adjust glob, let's figure out where it's actually putting these files... * Actually glob the right paths * cont'd * cont'd 2 * Update Vulkan Loader binaries (#765) * New binaries for Vulkan Loader on Microsoft Windows 10.0.17763 * New binaries for Vulkan Loader on Linux 5.11.0-1022-azure #23~20.04.1-Ubuntu SMP Fri Nov 19 10:20:52 UTC 2021 * New binaries for Vulkan Loader on Microsoft Windows 10.0.17763 * New binaries for Vulkan Loader on Darwin 20.6.0 Darwin Kernel Version 20.6.0: Wed Nov 10 22:23:07 PST 2021; root:xnu-7195.141.14~1/RELEASE_X86_64 Co-authored-by: The Silk.NET Automaton <9011267+dotnet-bot@users.noreply.github.com> * Update SwiftShader binaries (#766) * New binaries for SwiftShader on Microsoft Windows 10.0.17763 * New binaries for SwiftShader on Microsoft Windows 10.0.17763 * New binaries for SwiftShader on Microsoft Windows 10.0.17763 Co-authored-by: The Silk.NET Automaton <9011267+dotnet-bot@users.noreply.github.com> * Fix CI Build * Update Vulkan Loader binaries (#825) * New binaries for Vulkan Loader on Darwin 20.6.0 Darwin Kernel Version 20.6.0: Wed Jan 12 22:22:42 PST 2022; root:xnu-7195.141.19~2/RELEASE_X86_64 * New binaries for Vulkan Loader on Microsoft Windows 10.0.20348 Co-authored-by: The Silk.NET Automaton <9011267+dotnet-bot@users.noreply.github.com> * New binaries for ANGLE on Darwin 20.6.0 Darwin Kernel Version 20.6.0: Wed Jan 12 22:22:42 PST 2022; root:xnu-7195.141.19~2/RELEASE_X86_64 (#827) Co-authored-by: The Silk.NET Automaton <9011267+dotnet-bot@users.noreply.github.com> * Update SwiftShader binaries (#826) * New binaries for SwiftShader on Microsoft Windows 10.0.20348 * New binaries for SwiftShader on Darwin 20.6.0 Darwin Kernel Version 20.6.0: Wed Jan 12 22:22:42 PST 2022; root:xnu-7195.141.19~2/RELEASE_X86_64 Co-authored-by: The Silk.NET Automaton <9011267+dotnet-bot@users.noreply.github.com> Co-authored-by: Kai Jellinghaus <contact@kaij.tech> Co-authored-by: silkdotnet <85832961+silkdotnet@users.noreply.github.com> Co-authored-by: The Silk.NET Automaton <9011267+dotnet-bot@users.noreply.github.com>
1 parent 073e45d commit bdefe55

Some content is hidden

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

45 files changed

+939
-18
lines changed

.github/workflows/SwiftShader.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: SwiftShader
2+
on:
3+
push:
4+
paths:
5+
- build/submodules/SwiftShader
6+
- build/nuke/Build.Native.cs
7+
branches-ignore:
8+
- "ci/*"
9+
- "develop/*"
10+
- "main"
11+
jobs:
12+
Build:
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
env:
17+
- os: ubuntu-latest
18+
name: Linux
19+
nuke_invoke: ./build.sh
20+
extras: |
21+
sudo apt-get install -y libx11-xcb-dev
22+
- os: windows-latest
23+
name: Windows
24+
nuke_invoke: ./build.cmd
25+
extras: ""
26+
- os: macos-latest
27+
name: Darwin
28+
nuke_invoke: ./build.sh
29+
extras: ""
30+
name: ${{ matrix.env.name }} Build
31+
runs-on: ${{ matrix.env.os }}
32+
steps:
33+
- uses: actions/checkout@v2
34+
with:
35+
token: ${{ secrets.PUSHABLE_GITHUB_TOKEN }}
36+
- name: Checkout submodules, configure git
37+
run: |
38+
git -c submodule.third_party/git-hooks.update=none submodule update --init --recursive
39+
git config --local user.email "9011267+dotnet-bot@users.noreply.github.com"
40+
git config --local user.name "The Silk.NET Automaton"
41+
- name: Extra prerequisites
42+
run: |
43+
echo running extras
44+
${{ matrix.env.extras }}
45+
- name: Cache .tmp, ~/.nuget/packages
46+
uses: actions/cache@v2
47+
with:
48+
path: |
49+
.tmp
50+
~/.nuget/packages
51+
key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj') }}
52+
- name: Setup .NET 6.0
53+
uses: actions/setup-dotnet@v1
54+
with:
55+
dotnet-version: 6.0.100
56+
- name: Build SwiftShader
57+
run: ${{ matrix.env.nuke_invoke }} SwiftShader
58+
env:
59+
PUSHABLE_GITHUB_TOKEN: ${{ secrets.PUSHABLE_GITHUB_TOKEN }}

.github/workflows/angle.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: ANGLE
2+
on:
3+
push:
4+
paths:
5+
- build/submodules/ANGLE
6+
- build/nuke/Build.Native.cs
7+
branches-ignore:
8+
- "ci/*"
9+
- "develop/*"
10+
- "main"
11+
jobs:
12+
Build:
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
env:
17+
- os: ubuntu-latest
18+
name: Linux
19+
nuke_invoke: ./build.sh
20+
extras: |
21+
sudo apt-get remove php7.4-common
22+
sudo apt-get install -y libx11-xcb-dev libapache2-mod-php7.4
23+
- os: windows-latest
24+
name: Windows
25+
nuke_invoke: ./build.cmd
26+
extras: ""
27+
- os: macos-latest
28+
name: Darwin
29+
nuke_invoke: ./build.sh
30+
extras: ""
31+
name: ${{ matrix.env.name }} Build
32+
runs-on: ${{ matrix.env.os }}
33+
steps:
34+
- uses: actions/checkout@v2
35+
with:
36+
token: ${{ secrets.PUSHABLE_GITHUB_TOKEN }}
37+
- name: Checkout submodules, configure git
38+
run: |
39+
git -c submodule.third_party/git-hooks.update=none submodule update --init --recursive
40+
git config --local user.email "9011267+dotnet-bot@users.noreply.github.com"
41+
git config --local user.name "The Silk.NET Automaton"
42+
- name: Extra prerequisites
43+
run: |
44+
echo running extras
45+
${{ matrix.env.extras }}
46+
- name: Cache .tmp, ~/.nuget/packages
47+
uses: actions/cache@v2
48+
with:
49+
path: |
50+
.tmp
51+
~/.nuget/packages
52+
key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj') }}
53+
- name: Setup .NET 6.0
54+
uses: actions/setup-dotnet@v1
55+
with:
56+
dotnet-version: 6.0.100
57+
- name: Build ANGLE
58+
run: ${{ matrix.env.nuke_invoke }} Angle
59+
env:
60+
PUSHABLE_GITHUB_TOKEN: ${{ secrets.PUSHABLE_GITHUB_TOKEN }}

.github/workflows/vulkan-loader.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Vulkan Loader
2+
on:
3+
push:
4+
paths:
5+
- build/submodules/Vulkan-Loader
6+
- build/nuke/Build.Native.cs
7+
branches-ignore:
8+
- "ci/*"
9+
- "develop/*"
10+
- "main"
11+
jobs:
12+
Build:
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
env:
17+
- os: ubuntu-latest
18+
name: Linux
19+
nuke_invoke: ./build.sh
20+
extras: |
21+
sudo apt-get install -y build-essential libx11-xcb-dev libxkbcommon-dev libwayland-dev libxrandr-dev
22+
- os: windows-latest
23+
name: Windows
24+
nuke_invoke: ./build.cmd
25+
extras: ""
26+
- os: macos-latest
27+
name: Darwin
28+
nuke_invoke: ./build.sh
29+
extras: ""
30+
name: ${{ matrix.env.name }} Build
31+
runs-on: ${{ matrix.env.os }}
32+
steps:
33+
- uses: actions/checkout@v2
34+
with:
35+
token: ${{ secrets.PUSHABLE_GITHUB_TOKEN }}
36+
- name: Checkout submodules, configure git
37+
run: |
38+
git -c submodule.third_party/git-hooks.update=none submodule update --init --recursive
39+
git config --local user.email "9011267+dotnet-bot@users.noreply.github.com"
40+
git config --local user.name "The Silk.NET Automaton"
41+
- name: Extra prerequisites
42+
run: |
43+
echo running extras
44+
${{ matrix.env.extras }}
45+
- name: Cache .tmp, ~/.nuget/packages
46+
uses: actions/cache@v2
47+
with:
48+
path: |
49+
.tmp
50+
~/.nuget/packages
51+
key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj') }}
52+
- name: Setup .NET 6.0
53+
uses: actions/setup-dotnet@v1
54+
with:
55+
dotnet-version: 6.0.100
56+
- name: Build Vulkan Loader
57+
run: ${{ matrix.env.nuke_invoke }} VulkanLoader
58+
env:
59+
PUSHABLE_GITHUB_TOKEN: ${{ secrets.PUSHABLE_GITHUB_TOKEN }}

.gitmodules

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,15 @@
44
[submodule "build/submodules/Vulkan-Headers"]
55
path = build/submodules/Vulkan-Headers
66
url = https://github.com/KhronosGroup/Vulkan-Headers
7+
[submodule "build/submodules/SwiftShader"]
8+
path = build/submodules/SwiftShader
9+
url = https://github.com/google/swiftshader
10+
[submodule "build/submodules/ANGLE"]
11+
path = build/submodules/ANGLE
12+
url = https://chromium.googlesource.com/angle/angle
13+
[submodule "build/submodules/Vulkan-Loader"]
14+
path = build/submodules/Vulkan-Loader
15+
url = https://github.com/KhronosGroup/Vulkan-Loader
716
[submodule "build/submodules/GLFW"]
817
path = build/submodules/GLFW
918
url = https://github.com/glfw/glfw.git

.nuke

Lines changed: 0 additions & 1 deletion
This file was deleted.

.nuke/build.schema.json

Lines changed: 185 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
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+
},
13+
"Continue": {
14+
"type": "boolean",
15+
"description": "Indicates to continue a previously failed build attempt"
16+
},
17+
"Help": {
18+
"type": "boolean",
19+
"description": "Shows the help text for this build assembly"
20+
},
21+
"Host": {
22+
"type": "string",
23+
"description": "Host for execution. Default is 'automatic'",
24+
"enum": [
25+
"AppVeyor",
26+
"AzurePipelines",
27+
"Bamboo",
28+
"Bitrise",
29+
"GitHubActions",
30+
"GitLab",
31+
"Jenkins",
32+
"Rider",
33+
"SpaceAutomation",
34+
"TeamCity",
35+
"Terminal",
36+
"TravisCI",
37+
"VisualStudio",
38+
"VSCode"
39+
]
40+
},
41+
"MsbuildProperties": {
42+
"type": "array",
43+
"description": "Extra properties passed to MSBuild commands",
44+
"items": {
45+
"type": "string"
46+
}
47+
},
48+
"Native": {
49+
"type": "boolean",
50+
"description": "Build native code"
51+
},
52+
"NoLogo": {
53+
"type": "boolean",
54+
"description": "Disables displaying the NUKE logo"
55+
},
56+
"NugetApiKey": {
57+
"type": "string",
58+
"description": "The API key used to push packages and symbols packages to NuGet"
59+
},
60+
"NugetFeed": {
61+
"type": "string",
62+
"description": "NuGet feed"
63+
},
64+
"NugetNoServiceEndpoint": {
65+
"type": "boolean",
66+
"description": "NuGet -NoServiceEndpoint"
67+
},
68+
"NugetPassword": {
69+
"type": "string",
70+
"description": "NuGet password"
71+
},
72+
"NugetUsername": {
73+
"type": "string",
74+
"description": "NuGet username"
75+
},
76+
"OriginalSolution": {
77+
"type": "string",
78+
"description": "Path to a solution file that is automatically loaded"
79+
},
80+
"Partition": {
81+
"type": "string",
82+
"description": "Partition to use on CI"
83+
},
84+
"Plan": {
85+
"type": "boolean",
86+
"description": "Shows the execution plan (HTML)"
87+
},
88+
"Profile": {
89+
"type": "array",
90+
"description": "Defines the profiles to load",
91+
"items": {
92+
"type": "string"
93+
}
94+
},
95+
"Projects": {
96+
"type": "array",
97+
"description": "If specified, generates a solution including only the specified projects or group of projects. You can provide individual project names or the name of the folder in which they're contained e.g. \"--projects opengl examples/csharp vulkan microsoft core.win32extras silk.net.opencl\". The Silk.NET prefix for individual projects is optional, but folder names will be preferred over project names so if you only want \"Silk.NET.Vulkan\" and not everything in \"src/Vulkan\", use \"--projects silk.net.vulkan\". The solution include project dependencies. The solution will be regenerated whenever you run a NUKE build with this specified, but if you don't want to run a build just use \"nuke sln --projects ...\" to run a dummy target",
98+
"items": {
99+
"type": "string"
100+
}
101+
},
102+
"Root": {
103+
"type": "string",
104+
"description": "Root directory during build execution"
105+
},
106+
"SignPassword": {
107+
"type": "string",
108+
"description": "Code-signing service password"
109+
},
110+
"SignUsername": {
111+
"type": "string",
112+
"description": "Code-signing service username"
113+
},
114+
"Skip": {
115+
"type": "array",
116+
"description": "List of targets to be skipped. Empty list skips all dependencies",
117+
"items": {
118+
"type": "string",
119+
"enum": [
120+
"Angle",
121+
"BuildLibSilkDroid",
122+
"Clean",
123+
"Compile",
124+
"FullCompile",
125+
"FullPack",
126+
"FullPushToNuGet",
127+
"Pack",
128+
"Prerequisites",
129+
"PushToNuGet",
130+
"RegenerateBindings",
131+
"Restore",
132+
"SignPackages",
133+
"Sln",
134+
"SwiftShader",
135+
"Test",
136+
"ValidateSolution",
137+
"VulkanLoader"
138+
]
139+
}
140+
},
141+
"Sln": {
142+
"type": "boolean",
143+
"description": "If specified, when using the clean target removes the generated solution and stops"
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+
"Angle",
152+
"BuildLibSilkDroid",
153+
"Clean",
154+
"Compile",
155+
"FullCompile",
156+
"FullPack",
157+
"FullPushToNuGet",
158+
"Pack",
159+
"Prerequisites",
160+
"PushToNuGet",
161+
"RegenerateBindings",
162+
"Restore",
163+
"SignPackages",
164+
"Sln",
165+
"SwiftShader",
166+
"Test",
167+
"ValidateSolution",
168+
"VulkanLoader"
169+
]
170+
}
171+
},
172+
"Verbosity": {
173+
"type": "string",
174+
"description": "Logging verbosity during build execution. Default is 'Normal'",
175+
"enum": [
176+
"Minimal",
177+
"Normal",
178+
"Quiet",
179+
"Verbose"
180+
]
181+
}
182+
}
183+
}
184+
}
185+
}

.nuke/parameters.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"$schema": "./build.schema.json",
3+
"OriginalSolution": "Silk.NET.sln"
4+
}

0 commit comments

Comments
 (0)