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>
This commit is contained in:
Christian Marangi
2023-06-19 13:55:32 +02:00
parent acd9981b4e
commit 38cc09165f
8 changed files with 22 additions and 670 deletions

View File

@@ -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
build-kernels-label:
name: Build all affected Kernels from defined label
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
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