diff --git a/.github/workflows/kernel-build-test.yml b/.github/workflows/kernel-build-test.yml index cfe4e46..46547d7 100644 --- a/.github/workflows/kernel-build-test.yml +++ b/.github/workflows/kernel-build-test.yml @@ -53,6 +53,14 @@ on: type: boolean description: Build selftests with -O2 optimization in addition to non-optimized build. default: false + pahole-origin: + required: false + default: 'https://git.kernel.org/pub/scm/devel/pahole/pahole.git' + type: string + pahole-rev: + required: false + default: 'master' + type: string secrets: AWS_ROLE_ARN: required: true @@ -69,6 +77,8 @@ jobs: llvm-version: ${{ inputs.llvm-version }} kernel: ${{ inputs.kernel }} download_sources: ${{ inputs.download_sources }} + pahole-origin: ${{ inputs.pahole-origin }} + pahole-rev: ${{ inputs.pahole-rev }} build-release: if: ${{ inputs.build_release }} uses: ./.github/workflows/kernel-build.yml @@ -80,6 +90,8 @@ jobs: llvm-version: ${{ inputs.llvm-version }} kernel: ${{ inputs.kernel }} download_sources: ${{ inputs.download_sources }} + pahole-origin: ${{ inputs.pahole-origin }} + pahole-rev: ${{ inputs.pahole-rev }} release: true test: if: ${{ inputs.run_tests }} diff --git a/.github/workflows/kernel-build.yml b/.github/workflows/kernel-build.yml index ba0beca..55bfb78 100644 --- a/.github/workflows/kernel-build.yml +++ b/.github/workflows/kernel-build.yml @@ -38,6 +38,14 @@ on: type: boolean description: Build selftest with -O2 optimization default: false + pahole-origin: + required: false + type: string + default: 'https://git.kernel.org/pub/scm/devel/pahole/pahole.git' + pahole-rev: + required: false + type: string + default: 'master' jobs: build: @@ -96,7 +104,8 @@ jobs: with: arch: ${{ inputs.arch }} llvm-version: ${{ inputs.llvm-version }} - pahole: master + pahole: ${{ inputs.pahole-rev }} + pahole-origin: ${{ inputs.pahole-origin }} - name: Build kernel image uses: libbpf/ci/build-linux@v3 diff --git a/.github/workflows/pahole.yaml b/.github/workflows/pahole.yaml new file mode 100644 index 0000000..535c318 --- /dev/null +++ b/.github/workflows/pahole.yaml @@ -0,0 +1,54 @@ +name: pahole staging + +on: + schedule: + - cron: '0 0 * * 0' # once a week + push: + branches: + - "pahole-staging" + workflow_dispatch: + inputs: + origin: + default: 'https://git.kernel.org/pub/scm/devel/pahole/pahole.git' + required: true + rev: + default: 'next' + required: true + +jobs: + build-and-test: + strategy: + matrix: + runs_on: ["ubuntu-24.04"] + build_runs_on: ["ubuntu-24.04"] + arch: ["x86_64", "aarch64", "s390x"] + toolchain: + - { "name": "llvm", "fullname": "llvm-18", "version": 18 } + tests: + - include: + - { "test": "test_progs", "continue_on_error": false, "timeout_minutes": 360 } + fail-fast: false + name: "pahole@next ${{ matrix.arch }}" + uses: ./.github/workflows/kernel-build-test.yml + permissions: + id-token: write + contents: read + with: + arch: ${{ matrix.arch }} + build_release: false + build_runs_on: ${{ toJSON(matrix.build_runs_on) }} + download_sources: ${{ github.repository == 'kernel-patches/vmtest' }} + kernel: 'LATEST' + llvm-version: ${{ matrix.toolchain.version }} + pahole-origin: ${{ inputs.origin || 'https://git.kernel.org/pub/scm/devel/pahole/pahole.git' }} + pahole-rev: ${{ inputs.rev || 'next' }} + run_tests: true + run_veristat: false + runs_on: ${{ toJSON(matrix.runs_on) }} + tests: ${{ toJSON(matrix.tests) }} + toolchain: ${{ matrix.toolchain.name }} + toolchain_full: ${{ matrix.toolchain.fullname }} + # we need to pass AWS_ROLE_ARN, because github complains it's "required" + # however it's not used, because we don't run veristat + secrets: + AWS_ROLE_ARN: ''