1
1
name : Build Windows
2
2
3
3
on :
4
+ workflow_dispatch :
5
+ release :
4
6
pull_request :
5
7
branches :
6
8
- master
@@ -21,13 +23,52 @@ concurrency:
21
23
cancel-in-progress : true
22
24
23
25
env :
24
- GO_VERSION : ' 1.19'
25
26
GOSEC_VERSION : ' 2.14.0'
26
27
27
28
jobs :
29
+ filter :
30
+ name : Path Filter
31
+ runs-on : ubuntu-22.04
32
+ outputs :
33
+ build-ovs-ovn : ${{ steps.filter.outputs.windows-ovs-ovn }}
34
+ build-kube-ovn : ${{ steps.filter.outputs.windows-kube-ovn }}
35
+ steps :
36
+ - uses : actions/checkout@v3
37
+ - uses : actions/setup-go@v3
38
+ with :
39
+ go-version-file : go.mod
40
+ check-latest : true
41
+
42
+ - name : Generate path filter
43
+ env :
44
+ GOOS : windows
45
+ run : |
46
+ filter=".github/path-filters.yaml"
47
+ workflow=$(echo ${{ github.workflow_ref }} | awk -F@ '{print $1}' | sed 's@^${{ github.repository }}/@@')
48
+ cat > $filter <<EOF
49
+ windows-ovs-ovn:
50
+ - $workflow
51
+ windows-kube-ovn:
52
+ - $workflow
53
+ - go.mod
54
+ - go.sum
55
+ EOF
56
+ module=$(grep ^module go.mod | awk '{print $2}')
57
+ go list -f '{{ join .Deps "\n" }}' cmd/windows | grep ^$module/ | while read pkg; do
58
+ echo "- ${pkg#${module}/}/*" >> $filter
59
+ done
60
+
61
+ - uses : dorny/paths-filter@v2
62
+ id : filter
63
+ with :
64
+ filters : .github/path-filters.yaml
65
+
28
66
build-ovs-and-ovn :
29
67
name : Build OVS and OVN
68
+ needs :
69
+ - filter
30
70
runs-on : windows-2019
71
+ if : github.event_name != 'pull_request' || needs.filter.outputs.build-ovs-ovn == 'true'
31
72
steps :
32
73
- name : Check out PTHREADS4W
33
74
run : |
@@ -131,14 +172,16 @@ jobs:
131
172
132
173
build-kube-ovn :
133
174
name : Build Kube-OVN
175
+ needs :
176
+ - filter
134
177
runs-on : windows-2019
178
+ if : github.event_name != 'pull_request' || needs.filter.outputs.build-kube-ovn == 'true'
135
179
steps :
136
180
- uses : actions/checkout@v3
137
181
- uses : actions/setup-go@v3
138
182
with :
139
- go-version : ' ${{ env.GO_VERSION }} '
183
+ go-version-file : go.mod
140
184
check-latest : true
141
- id : go
142
185
143
186
- name : Export Go full version
144
187
run : |
@@ -153,8 +196,7 @@ jobs:
153
196
~\AppData\Local\go-build
154
197
~\go\pkg\mod
155
198
key : ${{ runner.os }}-${{ env.GO_FULL_VER }}-${{ hashFiles('**/go.sum') }}
156
- restore-keys : |
157
- ${{ runner.os }}-${{ env.GO_FULL_VER }}-
199
+ restore-keys : ${{ runner.os }}-${{ env.GO_FULL_VER }}-
158
200
159
201
- name : Install gosec
160
202
run : |
0 commit comments