aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/label-kernel.yml
diff options
context:
space:
mode:
authorChristian Marangi <ansuelsmth@gmail.com>2023-06-19 13:55:32 +0200
committerChristian Marangi <ansuelsmth@gmail.com>2023-06-25 02:08:56 +0200
commit38cc09165fd11caa9599d960280bd91dbaba7a62 (patch)
treea21ee217392e3b97e1f18da4a20dee25948a3886 /.github/workflows/label-kernel.yml
parentacd9981b4ef750544202df9d9e2d0143a6dfd478 (diff)
CI: migrate each workflow to use reusable workflow from dedicated repo
Migrate each workflow to use reusable workflow from dedicated repo to skip pushing CI related commits to openwrt and better track versioning of CI workflow. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Diffstat (limited to '.github/workflows/label-kernel.yml')
-rw-r--r--.github/workflows/label-kernel.yml119
1 files changed, 3 insertions, 116 deletions
diff --git a/.github/workflows/label-kernel.yml b/.github/workflows/label-kernel.yml
index eab79cf0c0..655d7d6ff3 100644
--- a/.github/workflows/label-kernel.yml
+++ b/.github/workflows/label-kernel.yml
@@ -7,123 +7,10 @@ on:
- labeled
jobs:
- set_target:
- if: startsWith(github.event.label.name, 'ci:kernel:')
- name: Set target
- runs-on: ubuntu-latest
- outputs:
- targets_subtargets: ${{ steps.set_target.outputs.targets_subtargets }}
- targets: ${{ steps.set_target.outputs.targets }}
-
- steps:
- - name: Checkout
- uses: actions/checkout@v3
-
- - name: Parse label
- id: parse_label
- env:
- CI_EVENT_LABEL_NAME: ${{ github.event.label.name }}
- run: |
- echo "$CI_EVENT_LABEL_NAME" | sed -n 's/ci:kernel:\([^:]*\):\([^:]*\):*\([^:]*\)$/target=\1/p' | tee --append $GITHUB_OUTPUT
- echo "$CI_EVENT_LABEL_NAME" | sed -n 's/ci:kernel:\([^:]*\):\([^:]*\):*\([^:]*\)$/subtarget=\2/p' | tee --append $GITHUB_OUTPUT
- echo "$CI_EVENT_LABEL_NAME" | sed -n 's/ci:kernel:\([^:]*\):\([^:]*\):*\([^:]*\)$/testing=\3/p' | tee --append $GITHUB_OUTPUT
-
- - name: Set targets
- id: set_target
- run: |
- ALL_TARGETS="$(perl ./scripts/dump-target-info.pl kernels 2>/dev/null)"
-
- TARGETS_SUBTARGETS="$(echo "$ALL_TARGETS" | sort -u -t '/' -k1)"
- TARGETS="$(echo "$ALL_TARGETS" | sort -u -t '/' -k1,1)"
-
- [ "${{ steps.parse_label.outputs.subtarget }}" = "first" ] && TARGETS_SUBTARGETS=$TARGETS
-
- JSON_TARGETS_SUBTARGETS='['
- FIRST=1
- while IFS= read -r line; do
- TARGET_SUBTARGET=$(echo $line | cut -d " " -f 1)
- TARGET=$(echo $TARGET_SUBTARGET | cut -d "/" -f 1)
- SUBTARGET=$(echo $TARGET_SUBTARGET | cut -d "/" -f 2)
-
- [ "${{ steps.parse_label.outputs.target }}" != "all" ] && [ "${{ steps.parse_label.outputs.target }}" != "$TARGET" ] && continue
- [ "${{ steps.parse_label.outputs.subtarget }}" != "all" ] && [ "${{ steps.parse_label.outputs.subtarget }}" != "first" ] &&
- [ "${{ steps.parse_label.outputs.subtarget }}" != $SUBTARGET ] && continue
- if [ "${{ steps.parse_label.outputs.testing }}" = "testing" ]; then
- TESTING_KERNEL_VER=$(echo $line | cut -d " " -f 3)
- [ -z "$TESTING_KERNEL_VER" ] && continue
- fi
-
- TUPLE='{"target":"'"$TARGET"'","subtarget":"'"$SUBTARGET"'","testing":"'"$TESTING_KERNEL_VER"'"}'
- [[ $FIRST -ne 1 ]] && JSON_TARGETS_SUBTARGETS="$JSON_TARGETS_SUBTARGETS"','
- JSON_TARGETS_SUBTARGETS="$JSON_TARGETS_SUBTARGETS""$TUPLE"
- FIRST=0
- done <<< "$TARGETS_SUBTARGETS"
- JSON_TARGETS_SUBTARGETS="$JSON_TARGETS_SUBTARGETS"']'
-
- JSON_TARGETS='['
- FIRST=1
- while IFS= read -r line; do
- TARGET_SUBTARGET=$(echo $line | cut -d " " -f 1)
- TARGET=$(echo $TARGET_SUBTARGET | cut -d "/" -f 1)
- SUBTARGET=$(echo $TARGET_SUBTARGET | cut -d "/" -f 2)
-
- [ "${{ steps.parse_label.outputs.target }}" != "all" ] && [ "${{ steps.parse_label.outputs.target }}" != $TARGET ] && continue
- if [ "${{ steps.parse_label.outputs.testing }}" = "testing" ]; then
- TESTING_KERNEL_VER=$(echo $line | cut -d " " -f 3)
- [ -z "$TESTING_KERNEL_VER" ] && continue
- fi
-
- TUPLE='{"target":"'"$TARGET"'","subtarget":"'"$SUBTARGET"'","testing":"'"$TESTING_KERNEL_VER"'"}'
- [[ $FIRST -ne 1 ]] && JSON_TARGETS="$JSON_TARGETS"','
- JSON_TARGETS="$JSON_TARGETS""$TUPLE"
- FIRST=0
- done <<< "$TARGETS"
- JSON_TARGETS="$JSON_TARGETS"']'
-
- echo -e "\n---- targets to build ----\n"
- echo "$JSON_TARGETS_SUBTARGETS"
- echo -e "\n---- targets to build ----\n"
-
- echo -e "\n---- targets to check patch ----\n"
- echo "$JSON_TARGETS"
- echo -e "\n---- targets to check patch ----\n"
-
- echo "targets_subtargets=$JSON_TARGETS_SUBTARGETS" >> $GITHUB_OUTPUT
- echo "targets=$JSON_TARGETS" >> $GITHUB_OUTPUT
-
- build_kernel:
- name: Build Kernel with external toolchain
- needs: set_target
- permissions:
- contents: read
- packages: read
- actions: write
- uses: ./.github/workflows/build.yml
- strategy:
- fail-fast: False
- matrix:
- include: ${{fromJson(needs.set_target.outputs.targets_subtargets)}}
- with:
- container_name: toolchain
- target: ${{ matrix.target }}
- subtarget: ${{ matrix.subtarget }}
- testing: ${{ matrix.testing != '' && true }}
- build_kernel: true
- build_all_kmods: true
-
- check-kernel-patches:
- name: Check Kernel patches
- needs: set_target
+ build-kernels-label:
+ name: Build all affected Kernels from defined label
permissions:
contents: read
packages: read
actions: write
- strategy:
- fail-fast: False
- matrix:
- include: ${{fromJson(needs.set_target.outputs.targets)}}
- uses: ./.github/workflows/check-kernel-patches.yml
- with:
- target: ${{ matrix.target }}
- subtarget: ${{ matrix.subtarget }}
- testing: ${{ matrix.testing != '' && true }}
+ uses: openwrt/actions-shared-workflows/.github/workflows/label-kernel.yml@main