From 72bf8e416b5ba01b509c406967f2a40ec8b4ec86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Wed, 6 Nov 2024 11:48:39 +0000 Subject: [PATCH 1/3] Bump buildworker containers to v3.11.8 v21 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Its the latest version currently being used by buildbots. Signed-off-by: Petr Štetiar --- .github/dockerfiles/Dockerfile.tools | 2 +- .github/workflows/reusable_build-tools.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/dockerfiles/Dockerfile.tools b/.github/dockerfiles/Dockerfile.tools index eac3ae74..61d0fbfa 100644 --- a/.github/dockerfiles/Dockerfile.tools +++ b/.github/dockerfiles/Dockerfile.tools @@ -1,4 +1,4 @@ -FROM ghcr.io/openwrt/buildbot/buildworker-v3.8.0:v9 +FROM ghcr.io/openwrt/buildbot/buildworker-v3.11.8:v21@sha256:fcebfe9792fa5db122d68fe781c5e45af7abf1ab5968ed1e040b48663aea1528 COPY --chown=buildbot staging_dir/host /prebuilt_tools/staging_dir/host COPY --chown=buildbot build_dir/host /prebuilt_tools/build_dir/host diff --git a/.github/workflows/reusable_build-tools.yml b/.github/workflows/reusable_build-tools.yml index 5a0a3860..4a33ae15 100644 --- a/.github/workflows/reusable_build-tools.yml +++ b/.github/workflows/reusable_build-tools.yml @@ -13,7 +13,7 @@ jobs: build: name: Build tools runs-on: ubuntu-latest - container: ghcr.io/openwrt/buildbot/buildworker-v3.8.0:v9 + container: ghcr.io/openwrt/buildbot/buildworker-v3.11.8:v21@sha256:fcebfe9792fa5db122d68fe781c5e45af7abf1ab5968ed1e040b48663aea1528 steps: - name: Checkout From 53cd7be12bc5750af3514886d1608d3a4d39294d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Sun, 7 Jan 2024 18:53:39 +0000 Subject: [PATCH 2/3] Try to prevent harder buildbot failures MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merging pull request #14218 (with all 190 CI checks green) resulted in buildbot failures in `Kernel/CollectDebug` step, likely due to the fact, that CI builds don't use same config options as on buildbot, specifically CI builds currently don't have `COLLECT_KERNEL_DEBUG` config option enabled. So lets try to prevent those regressions in the future by aligning the CI build process with the build config options used later on the buildbots. References: 066b0fee7668 ("kernel: copy only *.ko for debug info") References: https://github.com/openwrt/openwrt/pull/14218 Signed-off-by: Petr Štetiar --- .github/workflows/label-target.yml | 2 ++ .github/workflows/packages.yml | 2 ++ .github/workflows/reusable_build.yml | 31 ++++++++++++++++++++++++++++ .github/workflows/toolchain.yml | 1 + 4 files changed, 36 insertions(+) diff --git a/.github/workflows/label-target.yml b/.github/workflows/label-target.yml index f32d79e7..3b5f9f79 100644 --- a/.github/workflows/label-target.yml +++ b/.github/workflows/label-target.yml @@ -35,6 +35,8 @@ jobs: target: ${{ needs.set_target.outputs.target }} subtarget: ${{ needs.set_target.outputs.subtarget }} build_full: true + build_ib_sdk: true + build_bpf_toolchain: true build_all_kmods: true build_all_boards: true build_all_modules: true diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml index 7e4fa948..e6cdb78d 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages.yml @@ -44,6 +44,8 @@ jobs: build_all_kmods: true build_all_modules: true build_full: true + build_ib_sdk: true + build_bpf_toolchain: true ccache_type: packages upload_ccache_cache: ${{ github.repository_owner == 'openwrt' }} check_packages_list: ${{ needs.determine_changed_packages.outputs.changed_packages }} diff --git a/.github/workflows/reusable_build.yml b/.github/workflows/reusable_build.yml index d22542d1..cb11ae53 100644 --- a/.github/workflows/reusable_build.yml +++ b/.github/workflows/reusable_build.yml @@ -35,6 +35,10 @@ on: type: boolean build_all_boards: type: boolean + build_ib_sdk: + type: boolean + build_bpf_toolchain: + type: boolean use_openwrt_container: type: boolean default: true @@ -449,6 +453,33 @@ jobs: run: | echo CONFIG_KERNEL_WERROR=y >> .config + - name: Configure various options which are used on buildbots + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: | + echo CONFIG_JSON_CYCLONEDX_SBOM=y >> .config + echo CONFIG_COLLECT_KERNEL_DEBUG=y >> .config + echo CONFIG_REPRODUCIBLE_DEBUG_INFO=y >> .config + echo CONFIG_KERNEL_BUILD_USER="builder" >> .config + echo CONFIG_KERNEL_BUILD_DOMAIN="buildhost" >> .config + + - name: Configure BPF options as used on buildbots + shell: su buildbot -c "sh -e {0}" + if: inputs.build_bpf_toolchain == true + working-directory: openwrt + run: | + echo CONFIG_DEVEL=y >> .config + echo CONFIG_SDK_LLVM_BPF=y >> .config + echo CONFIG_BPF_TOOLCHAIN_BUILD_LLVM=y >> .config + + - name: Configure SDK and IB options used on buildbots + shell: su buildbot -c "sh -e {0}" + if: inputs.build_ib_sdk == true + working-directory: openwrt + run: | + echo CONFIG_IB=y >> .config + echo CONFIG_SDK=y >> .config + - name: Configure all kernel modules if: inputs.build_all_kmods == true shell: su buildbot -c "sh -e {0}" diff --git a/.github/workflows/toolchain.yml b/.github/workflows/toolchain.yml index 23e68898..05fe67cc 100644 --- a/.github/workflows/toolchain.yml +++ b/.github/workflows/toolchain.yml @@ -53,3 +53,4 @@ jobs: target: ${{ matrix.target }} subtarget: ${{ matrix.subtarget }} build_toolchain: true + build_bpf_toolchain: true From 27eb2d8430f6a1b896fac73e74d83b51c6269ae0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Wed, 6 Nov 2024 12:01:07 +0000 Subject: [PATCH 3/3] Enable smoke testing of the tools MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently during opkg->apk switch we're seeing a lot of regressions here and there, so lets QA this part a bit to prevent those using the new tools-smoke-test.sh script. Signed-off-by: Petr Štetiar --- .github/workflows/reusable_build.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/.github/workflows/reusable_build.yml b/.github/workflows/reusable_build.yml index cb11ae53..622488bb 100644 --- a/.github/workflows/reusable_build.yml +++ b/.github/workflows/reusable_build.yml @@ -651,12 +651,36 @@ jobs: working-directory: openwrt run: make -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh + - name: Check SDK + if: inputs.build_ib_sdk == true + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: .github/workflows/scripts/tools-smoke-test.sh sdk ${{ inputs.target }} ${{ inputs.subtarget }} + + - name: Check ImageBuilder + if: inputs.build_ib_sdk == true + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: .github/workflows/scripts/tools-smoke-test.sh imagebuilder ${{ inputs.target }} ${{ inputs.subtarget }} + + - name: Check BPF toolchain + if: inputs.build_bpf_toolchain == true + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: .github/workflows/scripts/tools-smoke-test.sh bpf ${{ inputs.target }} ${{ inputs.subtarget }} + - name: Build external toolchain if: inputs.build_external_toolchain == true shell: su buildbot -c "sh -e {0}" working-directory: openwrt run: make target/toolchain/compile -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh + - name: Check external toolchain + if: inputs.build_external_toolchain == true + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: .github/workflows/scripts/tools-smoke-test.sh toolchain ${{ inputs.target }} ${{ inputs.subtarget }} + - name: Coverity prepare toolchain if: inputs.coverity_check_packages != '' shell: su buildbot -c "sh -e {0}"