aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Štetiar <ynezz@true.cz>2023-01-11 10:26:16 +0100
committerPetr Štetiar <ynezz@true.cz>2023-01-27 11:04:07 +0100
commitba3aa6233d2c269c29d5191450cdc4ad2892358f (patch)
treea764a27667982bf0133da9271351601c735c45f6
parent1a47f19080e0c8edbf4a463020118bb9ccaa3ff0 (diff)
downloadupstream-ba3aa6233d2c269c29d5191450cdc4ad2892358f.tar.gz
upstream-ba3aa6233d2c269c29d5191450cdc4ad2892358f.tar.bz2
upstream-ba3aa6233d2c269c29d5191450cdc4ad2892358f.zip
ci: allow custom kernel and target jobs based on labels
Current job triggers based on matching of changed paths is quite limited, so lets make it possible to additionally trigger manual CI jobs by adding CI specific pull request build labels: * `ci:target:x86:64` label is going to trigger CI target check jobs for x86/64 (sub)target. * `ci:kernel:x86:64` label is going to trigger CI kernel check jobs for x86/64 (sub)target. Signed-off-by: Petr Štetiar <ynezz@true.cz>
-rw-r--r--.github/workflows/label-kernel.yml45
-rw-r--r--.github/workflows/label-target.yml37
2 files changed, 82 insertions, 0 deletions
diff --git a/.github/workflows/label-kernel.yml b/.github/workflows/label-kernel.yml
new file mode 100644
index 0000000000..1156e0ad98
--- /dev/null
+++ b/.github/workflows/label-kernel.yml
@@ -0,0 +1,45 @@
+# ci:kernel:x86:64 is going to trigger CI kernel check jobs for x86/64 target
+
+name: Build kernel and check patches for target specified in labels
+on:
+ pull_request:
+ types:
+ - labeled
+
+jobs:
+ set_target:
+ if: startsWith(github.event.label.name, 'ci:kernel:')
+ name: Set target
+ runs-on: ubuntu-latest
+ outputs:
+ target: ${{ steps.set_target.outputs.target }}
+
+ steps:
+ - name: Set target
+ id: set_target
+ env:
+ CI_EVENT_LABEL_NAME: ${{ github.event.label.name }}
+ run: |
+ echo "$CI_EVENT_LABEL_NAME" | sed -n 's/.*:\(.*\):\(.*\)$/target="\1\/\2"/p' | tee --append $GITHUB_OUTPUT
+
+ build_kernel:
+ name: Build Kernel with external toolchain
+ needs: set_target
+ permissions:
+ contents: read
+ packages: read
+ uses: ./.github/workflows/build.yml
+ with:
+ target: ${{ needs.set_target.outputs.target }}
+ build_kernel: true
+ build_all_kmods: true
+
+ check-kernel-patches:
+ name: Check Kernel patches
+ needs: set_target
+ permissions:
+ contents: read
+ packages: read
+ uses: ./.github/workflows/check-kernel-patches.yml
+ with:
+ target: ${{ needs.set_target.outputs.target }}
diff --git a/.github/workflows/label-target.yml b/.github/workflows/label-target.yml
new file mode 100644
index 0000000000..e189024076
--- /dev/null
+++ b/.github/workflows/label-target.yml
@@ -0,0 +1,37 @@
+# ci:target:x86:64 is going to trigger CI target check jobs for x86/64 target
+
+name: Build check target specified in labels
+on:
+ pull_request:
+ types:
+ - labeled
+
+jobs:
+ set_target:
+ if: startsWith(github.event.label.name, 'ci:target:')
+ name: Set target
+ runs-on: ubuntu-latest
+ outputs:
+ target: ${{ steps.set_target.outputs.target }}
+
+ steps:
+ - name: Set target
+ id: set_target
+ env:
+ CI_EVENT_LABEL_NAME: ${{ github.event.label.name }}
+ run: |
+ echo "$CI_EVENT_LABEL_NAME" | sed -n 's/.*:\(.*\):\(.*\)$/target="\1\/\2"/p' | tee --append $GITHUB_OUTPUT
+
+ build_target:
+ name: Build target
+ needs: set_target
+ permissions:
+ contents: read
+ packages: read
+ uses: ./.github/workflows/build.yml
+ with:
+ target: ${{ needs.set_target.outputs.target }}
+ build_full: true
+ build_all_kmods: true
+ build_all_boards: true
+ build_all_modules: true