15
15
SKEL_BUILDER_IMAGE_BASE : ghcr.io/draios/sysdig-skel-builder-pr
16
16
BUILDER_DEV : ghcr.io/draios/sysdig-builder:dev
17
17
SKEL_BUILDER_DEV : ghcr.io/draios/sysdig-skel-builder:dev
18
-
19
18
runs-on : ubuntu-latest
20
19
steps :
21
20
- name : Checkout Sysdig
38
37
39
38
- name : Set up Docker Buildx
40
39
if : steps.builder-files.outputs.any_changed == 'true'
41
- uses : docker/setup-buildx-action@v2
40
+ uses : docker/setup-buildx-action@v3
42
41
43
42
- name : Login to Github Packages
44
43
if : steps.builder-files.outputs.any_changed == 'true'
@@ -47,30 +46,13 @@ jobs:
47
46
registry : ${{ env.REGISTRY }}
48
47
username : ${{ github.actor }}
49
48
password : ${{ secrets.GITHUB_TOKEN }}
50
-
51
- - name : Get new skeleton builder image tag
52
- id : get-new-skeleton-builder
53
- if : steps.builder-files.outputs.any_changed == 'true'
54
- run : |
55
- echo "skeleton_builder_image=${{ (github.event.pull_request.number != '') && format('{0}:{1}', env.SKEL_BUILDER_IMAGE_BASE, github.event.pull_request.number) || env.SKEL_BUILDER_DEV }}" >> $GITHUB_OUTPUT
56
-
49
+
57
50
- name : Get new builder image tag
58
51
id : get-new-builder
59
52
if : steps.builder-files.outputs.any_changed == 'true'
60
53
run : |
61
54
echo "builder_image=${{ (github.event.pull_request.number != '') && format('{0}:{1}', env.BUILDER_IMAGE_BASE, github.event.pull_request.number) || env.BUILDER_DEV }}" >> $GITHUB_OUTPUT
62
55
63
- - name : Build new skeleton builder
64
- id : skeleton-builder
65
- if : steps.builder-files.outputs.any_changed == 'true'
66
- uses : docker/build-push-action@v6
67
- with :
68
- context : docker/builder
69
- file : docker/builder/modern_bpf_probe.Dockerfile
70
- platforms : linux/amd64,linux/arm64
71
- tags : ${{ steps.get-new-skeleton-builder.outputs.skeleton_builder_image }}
72
- push : true
73
-
74
56
- name : Build new builder
75
57
id : build-builder
76
58
if : steps.builder-files.outputs.any_changed == 'true'
@@ -80,166 +62,59 @@ jobs:
80
62
platforms : linux/amd64,linux/arm64
81
63
tags : ${{ steps.get-new-builder.outputs.builder_image }}
82
64
push : true
83
-
84
65
outputs :
85
66
builder_image : ${{ (steps.builder-files.outputs.any_changed == 'true') && steps.get-new-builder.outputs.builder_image || env.BUILDER_DEV }}
86
- skeleton_builder_image : ${{ (steps.builder-files.outputs.any_changed == 'true') && steps.get-new-skeleton-builder.outputs.skeleton_builder_image || env.SKEL_BUILDER_DEV }}
87
-
88
- build-skeleton-sysdig-linux-amd64 :
89
- needs : builder
90
- runs-on : ubuntu-latest
91
- container :
92
- image : ${{ needs.builder.outputs.skeleton_builder_image }}
93
- steps :
94
- - name : Checkout Sysdig
95
- uses : actions/checkout@v4
96
- with :
97
- path : sysdig
98
- - name : Link paths
99
- run : |
100
- mkdir -p /source
101
- ln -s "$GITHUB_WORKSPACE/sysdig" /source/sysdig
102
- - name : Prepare build skeleton
103
- run : build cmake-skeleton
104
- - name : Build skeleton
105
- run : build make-skeleton
106
- - name : Cache build skeleton
107
- uses : actions/cache/save@v3
108
- if : always()
109
- id : cache
110
- with :
111
- path : /build-skeleton
112
- key : build-skeleton-${{ github.run_id }}
113
67
114
- build-sysdig-linux-amd64 :
115
- needs : [builder,build-skeleton-sysdig-linux-amd64 ]
68
+ build-sysdig-linux :
69
+ needs : [builder]
116
70
runs-on : ubuntu-latest
117
71
container :
118
72
image : ${{ needs.builder.outputs.builder_image }}
119
- volumes :
120
- - ' /node20217:/node20217:rw,rshared'
121
- - ' /node20217:/__e/node20:ro,rshared'
122
- env :
123
- ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION : true
73
+ strategy :
74
+ matrix :
75
+ platform :
76
+ - linux/amd64
77
+ - linux/arm64
78
+
124
79
steps :
125
- - name : install nodejs20glibc2.17
126
- run : |
127
- yum install curl -yyq
128
- curl -LO https://unofficial-builds.nodejs.org/download/release/v20.9.0/node-v20.9.0-linux-x64-glibc-217.tar.xz
129
- tar -xf node-v20.9.0-linux-x64-glibc-217.tar.xz --strip-components 1 -C /node20217
130
- ldd /__e/node20/bin/node
80
+ - name : Set up QEMU
81
+ uses : docker/setup-qemu-action@v3
131
82
132
83
- name : Checkout Sysdig
133
84
uses : actions/checkout@v4
134
85
with :
135
- path : sysdig
136
- - name : Link paths
86
+ fetch-depth : 0
87
+
88
+ - name : Build Sysdig
137
89
run : |
138
- mkdir -p /source
139
- ln -s "$GITHUB_WORKSPACE/sysdig" /source/sysdig
140
- - name : Restore build skeleton
141
- id : cache
142
- uses : actions/cache/restore@v3
143
- with :
144
- path : /build-skeleton
145
- key : build-skeleton-${{ github.run_id }}
146
- restore-keys : build-skeleton-
147
- - name : Build
148
- run : build cmake
149
- - name : Build packages
150
- run : build package
151
- - name : Upload rpm package
152
- uses : actions/upload-artifact@v3
153
- with :
154
- name : sysdig-dev-linux-x86_64.rpm
155
- path : |
156
- /build/release/sysdig-*.rpm
157
- - name : Upload deb package
158
- uses : actions/upload-artifact@v3
159
- with :
160
- name : sysdig-dev-linux-x86_64.deb
161
- path : |
162
- /build/release/sysdig-*.deb
163
- - name : Upload tar.gz package
164
- uses : actions/upload-artifact@v3
165
- with :
166
- name : sysdig-dev-linux-x86_64.tar.gz
167
- path : |
168
- /build/release/sysdig-*.tar.gz
90
+ cmake -DUSE_BUNDLED_DEPS=ON -DBUILD_BPF=OFF -DBUILD_DRIVER=OFF -DCMAKE_BUILD_TYPE=Release -S . -B build -G Ninja
91
+ cmake --build build --target package --config Release
169
92
170
- build-sysdig-linux-arm64 :
171
- needs : builder
172
- env :
173
- REGISTRY : ghcr.io
174
- BUILDER_IMAGE_BASE : ghcr.io/draios/sysdig-builder-pr
175
- SKEL_BUILDER_IMAGE_BASE : ghcr.io/draios/sysdig-skel-builder-pr
176
- BUILDER_DEV : ghcr.io/draios/sysdig-builder:dev
177
- SKEL_BUILDER_DEV : ghcr.io/draios/sysdig-skel-builder:dev
178
- ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION : true
179
- runs-on : ubuntu-latest
180
- steps :
181
- - name : Checkout Sysdig
182
- uses : actions/checkout@v4
183
- with :
184
- path : sysdig
185
- - name : Create build dir
93
+ - name : Set artifact name
94
+ id : artifact_name
186
95
run : |
187
- mkdir -p ${{ github.workspace }}/sysdig-build-aarch64
96
+ echo "name=sysdig-dev-$(echo ${{ matrix.platform }} | sed -e 's|/|-|g')" >> $GITHUB_OUTPUT
188
97
189
- - name : Login to Github Packages
190
- uses : docker/login-action@v3
98
+ - name : Upload rpm package
99
+ uses : actions/upload-artifact@v4
191
100
with :
192
- registry : ${{ env.REGISTRY }}
193
- username : ${{ github.actor }}
194
- password : ${{ secrets.GITHUB_TOKEN }}
101
+ name : ${{ steps.artifact_name.outputs.name }}.rpm
102
+ path : |
103
+ build/sysdig-*.rpm
195
104
196
- - name : Set up QEMU
197
- uses : docker/setup-qemu-action@v3
198
- with :
199
- platforms : ' amd64,arm64'
200
- - name : Run the build skeleton process with Docker
201
- uses : addnab/docker-run-action@v3
202
- with :
203
- username : ${{ github.actor }}
204
- password : ${{ secrets.GITHUB_TOKEN }}
205
- registry : ${{ env.REGISTRY }}
206
- image : ${{ needs.builder.outputs.skeleton_builder_image }}
207
- options : --platform=linux/arm64 -v ${{ github.workspace }}/sysdig:/source/sysdig -v ${{ github.workspace }}/sysdig-build-aarch64:/build/dev-packages -v ${{ github.workspace }}/skeleton-build:/build-skeleton
208
- run : |
209
- mkdir -p /build/dev-packages && \
210
- build cmake-skeleton && \
211
- build make-skeleton
212
- - name : Run the build process with Docker
213
- uses : addnab/docker-run-action@v3
214
- with :
215
- username : ${{ github.actor }}
216
- password : ${{ secrets.GITHUB_TOKEN }}
217
- registry : ${{ env.REGISTRY }}
218
- image : ${{ needs.builder.outputs.builder_image }}
219
- options : --platform=linux/arm64 -v ${{ github.workspace }}/sysdig:/source/sysdig -v ${{ github.workspace }}/sysdig-build-aarch64:/build/dev-packages -v ${{ github.workspace }}/skeleton-build:/build-skeleton
220
- run : |
221
- mkdir -p /build/dev-packages && \
222
- build cmake && \
223
- build package && \
224
- cp /build/release/sysdig-* /build/dev-packages
225
105
- name : Upload deb package
226
- uses : actions/upload-artifact@v3
227
- with :
228
- name : sysdig-dev-linux-aarch64.deb
229
- path : |
230
- ${{ github.workspace }}/sysdig-build-aarch64/sysdig-*.deb
231
- - name : Upload rpm package
232
- uses : actions/upload-artifact@v3
106
+ uses : actions/upload-artifact@v4
233
107
with :
234
- name : sysdig-dev-linux-aarch64.rpm
108
+ name : ${{ steps.artifact_name.outputs.name }}.deb
235
109
path : |
236
- ${{ github.workspace }}/sysdig-build-aarch64/sysdig-*.rpm
110
+ build/sysdig-*.deb
111
+
237
112
- name : Upload tar.gz package
238
- uses : actions/upload-artifact@v3
113
+ uses : actions/upload-artifact@v4
239
114
with :
240
- name : sysdig-dev-linux-aarch64 .tar.gz
115
+ name : ${{ steps.artifact_name.outputs.name }} .tar.gz
241
116
path : |
242
- ${{ github.workspace }}/sysdig- build-aarch64 /sysdig-*.tar.gz
117
+ build/sysdig-*.tar.gz
243
118
244
119
build-sysdig-others-amd64 :
245
120
name : build-sysdig-other-amd64
@@ -259,9 +134,8 @@ jobs:
259
134
uses : actions/checkout@v4
260
135
- name : Build
261
136
run : |
262
- mkdir -p build
263
- cd build && cmake -Wno-dev ..
264
- cmake --build . --target package --config Release
137
+ cmake -Wno-dev -S . -B build
138
+ cmake --build build --target package --config Release
265
139
- name : Upload artifacts
266
140
uses : actions/upload-artifact@v3
267
141
with :
@@ -284,9 +158,8 @@ jobs:
284
158
uses : actions/checkout@v4
285
159
- name : Build
286
160
run : |
287
- mkdir -p build
288
- cd build && cmake -Wno-dev ..
289
- cmake --build . --target package --config Release
161
+ cmake -Wno-dev -S . -B build
162
+ cmake --build build --target package --config Release
290
163
- name : Upload artifacts
291
164
uses : actions/upload-artifact@v3
292
165
with :
0 commit comments