88
99
1010jobs :
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+
1172 build-sysdig-linux :
73+ needs : [builder]
1274 runs-on : ubuntu-latest
1375 container :
14- image : ubuntu:22.04
15- options : --platform ${{ matrix.platform }}
76+ image : ${{ needs.builder.outputs.builder_image }}
1677 strategy :
1778 matrix :
1879 platform :
@@ -23,29 +84,14 @@ jobs:
2384 - name : Set up QEMU
2485 uses : docker/setup-qemu-action@v3
2586
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-
3887 - name : Checkout Sysdig
3988 uses : actions/checkout@v4
4089 with :
4190 fetch-depth : 0
4291
43- - name : Install zig
44- uses : ./.github/actions/install-zig
45-
4692 - name : Build Sysdig
4793 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
4995 cmake --build build --target package --config Release
5096
5197 - name : Set artifact name
0 commit comments