aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/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/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/kernel.yml')
-rw-r--r--.github/workflows/kernel.yml121
1 files changed, 3 insertions, 118 deletions
diff --git a/.github/workflows/kernel.yml b/.github/workflows/kernel.yml
index 3aa46f5cd7..87b8a14293 100644
--- a/.github/workflows/kernel.yml
+++ b/.github/workflows/kernel.yml
@@ -28,128 +28,13 @@ concurrency:
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
- determine_targets:
- name: Set targets
- runs-on: ubuntu-latest
- outputs:
- targets_subtargets: ${{ steps.find_targets.outputs.targets_subtargets }}
- targets: ${{ steps.find_targets.outputs.targets }}
-
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with:
- fetch-depth: 2
-
- - name: Get changed files
- id: changed-files
- uses: tj-actions/changed-files@v35
-
- - name: Set targets
- id: find_targets
- run: |
- ALL_TARGETS="$(perl ./scripts/dump-target-info.pl targets 2>/dev/null)"
- CHANGED_FILES="$(echo ${{ steps.changed-files.outputs.all_changed_files }} | tr ' ' '\n')"
-
- TARGETS_SUBTARGETS="$(echo "$ALL_TARGETS" | sort -u -t '/' -k1 | awk '{ print $1 }')"
- TARGETS="$(echo "$ALL_TARGETS" | sort -u -t '/' -k1,1 | awk '{ print $1 }')"
-
- # On testing non-specific target, skip testing each subtarget if we are testing pr
- if [ ${{ github.event_name }} != 'push' ]; then
- if echo "$CHANGED_FILES" | grep -v -q target/linux ||
- echo "$CHANGED_FILES" | grep -q target/linux/generic; then
- TARGETS_SUBTARGETS=$TARGETS
- fi
- fi
-
- JSON_TARGETS_SUBTARGETS='['
- FIRST=1
- for TARGET in $TARGETS_SUBTARGETS; do
- if echo "$CHANGED_FILES" | grep -v -q target/linux ||
- echo "$CHANGED_FILES" | grep -q target/linux/generic ||
- echo "$CHANGED_FILES" | grep -q $(echo $TARGET | cut -d "/" -f 1); then
- TUPLE='{"target":"'"$(echo $TARGET | cut -d "/" -f 1)"'","subtarget":"'"$(echo $TARGET | cut -d "/" -f 2)"'"}'
- [[ $FIRST -ne 1 ]] && JSON_TARGETS_SUBTARGETS="$JSON_TARGETS_SUBTARGETS"','
- JSON_TARGETS_SUBTARGETS="$JSON_TARGETS_SUBTARGETS""$TUPLE"
- FIRST=0
- fi
- done
- JSON_TARGETS_SUBTARGETS="$JSON_TARGETS_SUBTARGETS"']'
-
- JSON_TARGETS='['
- FIRST=1
- for TARGET in $TARGETS; do
- if echo "$CHANGED_FILES" | grep -v -q target/linux ||
- echo "$CHANGED_FILES" | grep -q target/linux/generic ||
- echo "$CHANGED_FILES" | grep -q $(echo $TARGET | cut -d "/" -f 1); then
- TUPLE='{"target":"'"$(echo $TARGET | cut -d "/" -f 1)"'","subtarget":"'"$(echo $TARGET | cut -d "/" -f 2)"'"}'
- [[ $FIRST -ne 1 ]] && JSON_TARGETS="$JSON_TARGETS"','
- JSON_TARGETS="$JSON_TARGETS""$TUPLE"
- FIRST=0
- fi
- done
- 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:
- name: Build Kernel with external toolchain
- needs: determine_targets
+ build-kernels:
+ name: Build all affected Kernels
permissions:
contents: read
packages: read
actions: write
- strategy:
- fail-fast: False
- matrix:
- include: ${{fromJson(needs.determine_targets.outputs.targets_subtargets)}}
- uses: ./.github/workflows/build.yml
- with:
- container_name: toolchain
- target: ${{ matrix.target }}
- subtarget: ${{ matrix.subtarget }}
- build_kernel: true
- build_all_kmods: true
- upload_ccache_cache: ${{ github.repository_owner == 'openwrt' }}
-
- check-kernel-patches:
- name: Check Kernel patches
- needs: determine_targets
- permissions:
- contents: read
- packages: read
- strategy:
- fail-fast: False
- matrix:
- include: ${{fromJson(needs.determine_targets.outputs.targets)}}
- uses: ./.github/workflows/check-kernel-patches.yml
- with:
- target: ${{ matrix.target }}
- subtarget: ${{ matrix.subtarget }}
-
- upload-ccache-cache-in-s3:
- if: github.event_name == 'push' && github.repository_owner == 'openwrt'
- name: Upload ccache cache to s3
- needs: [determine_targets, build]
- strategy:
- fail-fast: False
- matrix:
- include: ${{fromJson(needs.determine_targets.outputs.targets_subtargets)}}
secrets:
s3_access_key: ${{ secrets.GCS_S3_ACCESS_KEY }}
s3_secret_key: ${{ secrets.GCS_S3_SECRET_KEY }}
- uses: ./.github/workflows/upload-file-s3.yml
- with:
- endpoint: https://storage.googleapis.com
- bucket: openwrt-ci-cache
- download_id: ${{ matrix.target }}-${{ matrix.subtarget }}-ccache-cache
- filename: ccache-kernel-${{ matrix.target }}-${{ matrix.subtarget }}.tar
+ uses: openwrt/actions-shared-workflows/.github/workflows/kernel.yml@main