8
8
9
9
10
10
jobs :
11
+ builder :
12
+ env :
13
+ REGISTRY : ghcr.io
14
+ BUILDER_IMAGE_BASE : ghcr.io/draios/sysdig-builder-pr
15
+ SKEL_BUILDER_IMAGE_BASE : ghcr.io/draios/sysdig-skel-builder-pr
16
+ BUILDER_DEV : ghcr.io/draios/sysdig-builder:dev
17
+ SKEL_BUILDER_DEV : ghcr.io/draios/sysdig-skel-builder:dev
18
+ permissions : read-all|write-all
19
+ permissions :
20
+ packages : write
21
+ contents : read
22
+ runs-on : ubuntu-latest
23
+ steps :
24
+ - name : Checkout Sysdig
25
+ uses : actions/checkout@v4
26
+ with :
27
+ fetch-depth : 0
28
+
29
+ - name : Check if builder is modified
30
+ id : builder-files
31
+ uses : tj-actions/changed-files@v34
32
+ with :
33
+ files : |
34
+ docker/builder/**
35
+
36
+ - name : Set up QEMU
37
+ if : steps.builder-files.outputs.any_changed == 'true'
38
+ uses : docker/setup-qemu-action@v3
39
+ with :
40
+ platforms : ' amd64,arm64'
41
+
42
+ - name : Set up Docker Buildx
43
+ if : steps.builder-files.outputs.any_changed == 'true'
44
+ uses : docker/setup-buildx-action@v2
45
+
46
+ - name : Login to Github Packages
47
+ if : steps.builder-files.outputs.any_changed == 'true'
48
+ uses : docker/login-action@v3
49
+ with :
50
+ registry : ${{ env.REGISTRY }}
51
+ username : ${{ github.actor }}
52
+ password : ${{ secrets.GITHUB_TOKEN }}
53
+
54
+ - name : Get new builder image tag
55
+ id : get-new-builder
56
+ if : steps.builder-files.outputs.any_changed == 'true'
57
+ run : |
58
+ 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
59
+
60
+ - name : Build new builder
61
+ id : build-builder
62
+ if : steps.builder-files.outputs.any_changed == 'true'
63
+ uses : docker/build-push-action@v6
64
+ with :
65
+ context : docker/builder
66
+ platforms : linux/amd64,linux/arm64
67
+ tags : ${{ steps.get-new-builder.outputs.builder_image }}
68
+ push : true
69
+ outputs :
70
+ builder_image : ${{ (steps.builder-files.outputs.any_changed == 'true') && steps.get-new-builder.outputs.builder_image || env.BUILDER_DEV }}
71
+
11
72
build-sysdig-linux :
73
+ needs : [builder]
12
74
runs-on : ubuntu-latest
13
75
container :
14
- image : ubuntu:22.04
15
- options : --platform ${{ matrix.platform }}
76
+ image : ${{ needs.builder.outputs.builder_image }}
16
77
strategy :
17
78
matrix :
18
79
platform :
@@ -23,29 +84,14 @@ jobs:
23
84
- name : Set up QEMU
24
85
uses : docker/setup-qemu-action@v3
25
86
26
- - name : Install deps
27
- run : |
28
- sudo apt update && sudo apt install -y --no-install-recommends ninja-build curl ca-certificates build-essential git clang llvm pkg-config autoconf automake libtool libelf-dev wget libc-ares-dev libcurl4-openssl-dev libssl-dev libtbb-dev libjq-dev libjsoncpp-dev libgrpc++-dev protobuf-compiler-grpc libgtest-dev libprotobuf-dev cmake ninja-build
29
- DIR=$(pwd)
30
- cd /tmp
31
- git clone https://github.com/libbpf/bpftool.git --branch v7.3.0 --single-branch
32
- cd bpftool
33
- git submodule update --init
34
- cd src
35
- sudo make install
36
- cd ${DIR}
37
-
38
87
- name : Checkout Sysdig
39
88
uses : actions/checkout@v4
40
89
with :
41
90
fetch-depth : 0
42
91
43
- - name : Install zig
44
- uses : ./.github/actions/install-zig
45
-
46
92
- name : Build Sysdig
47
93
run : |
48
- cmake -DUSE_BUNDLED_DEPS=ON -DBUILD_BPF=OFF -DBUILD_SYSDIG_MODERN_BPF=OFF - DBUILD_DRIVER=OFF -DCMAKE_BUILD_TYPE=Release -S . -B build -G Ninja
94
+ cmake -DUSE_BUNDLED_DEPS=ON -DBUILD_BPF=OFF -DBUILD_DRIVER=OFF -DCMAKE_BUILD_TYPE=Release -S . -B build -G Ninja
49
95
cmake --build build --target package --config Release
50
96
51
97
- name : Set artifact name
0 commit comments