forked from OpenTabletDriver/OpenTabletDriver
-
Notifications
You must be signed in to change notification settings - Fork 0
154 lines (129 loc) · 4.67 KB
/
dotnet.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
name: .NET CI
on:
workflow_dispatch:
push:
branches:
- master
pull_request:
jobs:
linuxpublish:
runs-on: ubuntu-latest
name: Linux Publish
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup .NET Core
uses: actions/[email protected]
with:
dotnet-version: '8.0'
- name: Linux Publish
env:
runtime: linux-x64
run: |
read -ra options <<< "--configuration Release -p:DebugType=embedded -p:PublishTrimmed=false --no-self-contained -p:SourceRevisionId=$(git rev-parse --short HEAD)"
dotnet publish OpenTabletDriver.Daemon "${options[@]}" --runtime "$runtime" -o "build/$runtime"
dotnet publish OpenTabletDriver.Console "${options[@]}" --runtime "$runtime" -o "build/$runtime"
dotnet publish OpenTabletDriver.UX.Gtk "${options[@]}" --runtime "$runtime" -o "build/$runtime"
- name: Upload Linux artifacts
uses: actions/upload-artifact@v4
with:
name: OpenTabletDriver linux-x64
path: build/linux-x64
- name: Generate udev Rules
run: ./generate-rules.sh > 70-opentabletdriver.rules
- name: Upload udev Rules
uses: actions/upload-artifact@v4
with:
name: udev Rules
path: 70-opentabletdriver.rules
macospublish:
runs-on: ubuntu-latest
name: MacOS Publish
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup .NET Core
uses: actions/[email protected]
with:
dotnet-version: '8.0'
- name: MacOS Publish
env:
runtime: osx-x64
run: |
read -ra options <<< "--configuration Release -p:DebugType=embedded -p:PublishTrimmed=false --no-self-contained -p:SourceRevisionId=$(git rev-parse --short HEAD)"
dotnet publish OpenTabletDriver.Daemon "${options[@]}" --runtime "$runtime" -o "build/$runtime"
dotnet publish OpenTabletDriver.Console "${options[@]}" --runtime "$runtime" -o "build/$runtime"
dotnet publish OpenTabletDriver.UX.MacOS "${options[@]}" --runtime "$runtime" -o "build/$runtime"
- name: Upload MacOS artifacts
uses: actions/upload-artifact@v4
with:
name: OpenTabletDriver osx-x64
path: build/osx-x64
windowspublish:
runs-on: windows-latest
name: Windows Publish
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup .NET Core
uses: actions/[email protected]
with:
dotnet-version: '8.0'
- name: Windows Publish
env:
runtime: win-x64
run: |
$options=@("--configuration", "Release", "-p:PublishSingleFile=true", "-p:DebugType=embedded", "--no-self-contained", "-p:SourceRevisionId=$(git rev-parse --short HEAD)")
dotnet publish OpenTabletDriver.Daemon $options --runtime $ENV:runtime -o build/$ENV:runtime
dotnet publish OpenTabletDriver.Console $options --runtime $ENV:runtime -o build/$ENV:runtime
dotnet publish OpenTabletDriver.UX.Wpf $options --runtime $ENV:runtime -o build/$ENV:runtime
- name: Upload Windows artifacts
uses: actions/upload-artifact@v4
with:
name: OpenTabletDriver win-x64
path: build/win-x64
linter:
name: Lint Code
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
# Full git history is needed to get a proper list of changed files
fetch-depth: 0
- name: Setup .NET Core
uses: actions/[email protected]
with:
dotnet-version: '8.0'
- name: Lint Changed Files
run: |
mapfile -t files < <(git diff --name-only --diff-filter=AM HEAD^ HEAD | grep '.*\.cs$')
if [ ${#files[@]} -ne 0 ]; then dotnet format OpenTabletDriver.sln --verify-no-changes --include "${files[@]}"; fi
unittests:
name: Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup .NET Core
uses: actions/[email protected]
with:
dotnet-version: '8.0'
- name: Run tests
run: dotnet test
slnf:
name: Validate Solution Filters
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup .NET Core
uses: actions/[email protected]
with:
dotnet-version: '8.0'
- name: Windows
run: dotnet restore OpenTabletDriver.Windows.slnf
- name: Linux
run: dotnet restore OpenTabletDriver.Linux.slnf
- name: MacOS
run: dotnet restore OpenTabletDriver.MacOS.slnf