Skip to content

Commit 03f6029

Browse files
authored
feat: Add GitHub CI workflows (stride3d#2789)
1 parent 6183210 commit 03f6029

File tree

6 files changed

+298
-0
lines changed

6 files changed

+298
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Build Assembly Processor
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
build-type:
7+
description: Build Configuration?
8+
default: Debug
9+
type: choice
10+
options:
11+
- Debug
12+
- Release
13+
workflow_call:
14+
inputs:
15+
build-type:
16+
default: Debug
17+
type: string
18+
19+
jobs:
20+
#
21+
# Build Assembly Processor
22+
#
23+
Assembly-Processor:
24+
name: Build (${{ github.event.inputs.build-type || inputs.build-type }})
25+
runs-on: windows-latest
26+
steps:
27+
- uses: actions/checkout@v4
28+
with:
29+
lfs: true
30+
- uses: actions/setup-dotnet@v4
31+
with:
32+
dotnet-version: '8.0.x'
33+
- name: Build
34+
run: |
35+
dotnet build build\Stride.AssemblyProcessor.sln `
36+
-restore -m:1 -nr:false `
37+
-v:m -p:WarningLevel=0 `
38+
-p:Configuration=${{ github.event.inputs.build-type || inputs.build-type }} `
39+
-p:StrideSkipUnitTests=true `
40+
-p:StrideSkipAutoPack=true `
41+
-p:StrideEnableCodeAnalysis=true

.github/workflows/build-linux.yml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: Build Linux
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
build-type:
7+
description: Build Configuration?
8+
default: Debug
9+
type: choice
10+
options:
11+
- Debug
12+
- Release
13+
graphics-api:
14+
description: Graphics API
15+
default: OpenGL
16+
type: choice
17+
options:
18+
- OpenGL
19+
- Vulkan
20+
workflow_call:
21+
inputs:
22+
build-type:
23+
default: Debug
24+
type: string
25+
graphics-api:
26+
default: OpenGL
27+
type: string
28+
29+
jobs:
30+
#
31+
# Build Stride for Linux
32+
#
33+
Linux:
34+
name: Build (${{ github.event.inputs.build-type || inputs.build-type }}, ${{ github.event.inputs.graphics-api || inputs.graphics-api }})
35+
runs-on: windows-latest
36+
steps:
37+
- uses: actions/checkout@v4
38+
with:
39+
lfs: true
40+
- uses: actions/setup-dotnet@v4
41+
with:
42+
dotnet-version: '8.0.x'
43+
- uses: microsoft/setup-msbuild@v2
44+
- name: Build
45+
run: |
46+
msbuild build\Stride.Runtime.sln `
47+
-restore -m:1 -nr:false `
48+
-v:m -p:WarningLevel=0 `
49+
-p:Configuration=${{ github.event.inputs.build-type || inputs.build-type }} `
50+
-p:StridePlatforms=Linux `
51+
-p:StrideGraphicsApis=${{ github.event.inputs.graphics-api || inputs.graphics-api }} `
52+
-p:StrideSkipUnitTests=true `
53+
-p:StrideSkipAutoPack=true `
54+
-p:StrideEnableCodeAnalysis=true
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Build Visual Studio Package
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
build-type:
7+
description: Build Configuration?
8+
default: Debug
9+
type: choice
10+
options:
11+
- Debug
12+
# - Release # has a bug and cannot build
13+
workflow_call:
14+
inputs:
15+
build-type:
16+
default: Debug
17+
type: string
18+
19+
jobs:
20+
#
21+
# Build Visual Studio Package
22+
#
23+
VS-Package:
24+
name: Build (${{ github.event.inputs.build-type || inputs.build-type }})
25+
runs-on: windows-latest
26+
steps:
27+
- uses: actions/checkout@v4
28+
with:
29+
lfs: true
30+
- uses: actions/setup-dotnet@v4
31+
with:
32+
dotnet-version: '8.0.x'
33+
- uses: microsoft/setup-msbuild@v2
34+
- name: Build
35+
run: |
36+
msbuild build\Stride.VisualStudio.sln `
37+
-restore -m:1 -nr:false `
38+
-v:m -p:WarningLevel=0 `
39+
-p:Configuration=${{ github.event.inputs.build-type || inputs.build-type }} `
40+
-p:StrideSkipUnitTests=true `
41+
-p:StrideSkipAutoPack=true `
42+
-p:StrideEnableCodeAnalysis=true
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Build Windows
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
build-type:
7+
description: Build Configuration?
8+
default: Debug
9+
type: choice
10+
options:
11+
- Debug
12+
- Release
13+
workflow_call:
14+
inputs:
15+
build-type:
16+
default: Debug
17+
type: string
18+
19+
jobs:
20+
#
21+
# Build Stride for Windows
22+
#
23+
Windows:
24+
name: Build (${{ github.event.inputs.build-type || inputs.build-type }})
25+
runs-on: windows-latest
26+
steps:
27+
- uses: actions/checkout@v4
28+
with:
29+
lfs: true
30+
- uses: actions/setup-dotnet@v4
31+
with:
32+
dotnet-version: '8.0.x'
33+
- uses: microsoft/setup-msbuild@v2
34+
- name: Build
35+
run: |
36+
msbuild build\Stride.sln `
37+
-restore -m:1 -nr:false `
38+
-v:m -p:WarningLevel=0 `
39+
-p:Configuration=${{ github.event.inputs.build-type || inputs.build-type }} `
40+
-p:StridePlatforms=Windows `
41+
-p:StrideSkipUnitTests=true `
42+
-p:StrideSkipAutoPack=true `
43+
-p:StrideEnableCodeAnalysis=true

.github/workflows/main.yml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
paths:
8+
- '.github/workflows/**'
9+
- 'build/**'
10+
- 'deps/**'
11+
- 'sources/**'
12+
- '!**/.all-contributorsrc'
13+
- '!**/.editorconfig'
14+
- '!**/.gitignore'
15+
- '!**/*.md'
16+
pull_request:
17+
branches:
18+
- master
19+
paths:
20+
- '.github/workflows/**'
21+
- 'build/**'
22+
- 'deps/**'
23+
- 'sources/**'
24+
- '!**/.all-contributorsrc'
25+
- '!**/.editorconfig'
26+
- '!**/.gitignore'
27+
- '!**/*.md'
28+
types: [opened, synchronize, reopened, ready_for_review]
29+
workflow_dispatch:
30+
31+
jobs:
32+
Setup:
33+
if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event.pull_request.draft == false }}
34+
runs-on: ubuntu-latest
35+
steps:
36+
- run: exit 0
37+
38+
Linux-Debug:
39+
needs: Setup
40+
uses: ./.github/workflows/build-linux.yml
41+
secrets: inherit
42+
with:
43+
build-type: Debug
44+
45+
Windows-Debug:
46+
needs: Setup
47+
uses: ./.github/workflows/build-windows.yml
48+
secrets: inherit
49+
with:
50+
build-type: Debug
51+
52+
Windows-Tests:
53+
needs: Setup
54+
uses: ./.github/workflows/test-windows.yml
55+
secrets: inherit
56+
with:
57+
build-type: Release
58+
test-category: Simple

.github/workflows/test-windows.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Test Windows
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
build-type:
7+
description: Build in Release or Debug?
8+
required: true
9+
default: Release
10+
type: choice
11+
options:
12+
- Debug
13+
- Release
14+
test-category:
15+
description: Which category of tests?
16+
required: false
17+
default: Simple
18+
type: choice
19+
options:
20+
- Simple
21+
- Game
22+
- VSPackage
23+
workflow_call:
24+
inputs:
25+
build-type:
26+
required: true
27+
default: Release
28+
type: string
29+
test-category:
30+
required: false
31+
default: Simple
32+
type: string
33+
34+
jobs:
35+
#
36+
# Test Stride on Windows
37+
#
38+
Windows:
39+
name: Test (${{ github.event.inputs.test-category || inputs.test-category }}, ${{ github.event.inputs.build-type || inputs.build-type }})
40+
runs-on: windows-latest
41+
steps:
42+
- uses: actions/checkout@v4
43+
with:
44+
lfs: true
45+
- uses: actions/setup-dotnet@v4
46+
with:
47+
dotnet-version: '8.0.x'
48+
- uses: microsoft/setup-msbuild@v2
49+
- name: Build
50+
run: |
51+
msbuild build\Stride.Tests.${{ github.event.inputs.test-category || inputs.test-category }}.slnf `
52+
-restore -m:1 -nr:false `
53+
-v:m -p:WarningLevel=0 `
54+
-p:Configuration=${{ github.event.inputs.build-type || inputs.build-type }} `
55+
-p:StrideGraphicsApis=Direct3D11
56+
- name: Test
57+
run: |
58+
dotnet test build\Stride.Tests.${{ github.event.inputs.test-category || inputs.test-category }}.slnf `
59+
--no-build `
60+
-p:Configuration=${{ github.event.inputs.build-type || inputs.build-type }}

0 commit comments

Comments
 (0)