aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/check-kernel-patches.yml
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2022-11-01 19:10:01 +0100
committerJosef Schlehofer <pepe.schlehofer@gmail.com>2022-12-04 16:28:03 +0100
commit02391a5e5afb17378d4d9b67adef89c4c18fc558 (patch)
treeccbf04440634106f2dc3490769feed053f690c69 /.github/workflows/check-kernel-patches.yml
parent43980bfbf08365b2c92a51d1d82b2489106a8e12 (diff)
downloadupstream-02391a5e5afb17378d4d9b67adef89c4c18fc558.tar.gz
upstream-02391a5e5afb17378d4d9b67adef89c4c18fc558.tar.bz2
upstream-02391a5e5afb17378d4d9b67adef89c4c18fc558.zip
CI: Extract the OpenWrt building to own sub workflow
Extract the building of OpenWrt into an own workflow which is then triggered by the kernel.yml and packages.yml workflow with different inputs. This allows us to share much of the code of the workflow. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit 7c406a5f0837b0bfc293b723932695176a8ef6fe)
Diffstat (limited to '.github/workflows/check-kernel-patches.yml')
-rw-r--r--.github/workflows/check-kernel-patches.yml93
1 files changed, 93 insertions, 0 deletions
diff --git a/.github/workflows/check-kernel-patches.yml b/.github/workflows/check-kernel-patches.yml
new file mode 100644
index 0000000000..3608b5a3cc
--- /dev/null
+++ b/.github/workflows/check-kernel-patches.yml
@@ -0,0 +1,93 @@
+name: Refresh kernel for target
+
+on:
+ workflow_call:
+ inputs:
+ target:
+ required: true
+ type: string
+
+permissions:
+ contents: read
+
+jobs:
+ setup_build:
+ name: Setup build
+ runs-on: ubuntu-latest
+ outputs:
+ owner_lc: ${{ steps.lower_owner.outputs.owner_lc }}
+
+ steps:
+ - name: Set lower case owner name
+ id: lower_owner
+ run: |
+ OWNER_LC=$(echo "${{ github.repository_owner }}" \
+ | tr '[:upper:]' '[:lower:]')
+ echo "owner_lc=$OWNER_LC" >> $GITHUB_OUTPUT
+
+ check-patch:
+ name: Check Kernel patches
+ needs: setup_build
+ runs-on: ubuntu-latest
+
+ container: ghcr.io/${{ needs.setup_build.outputs.owner_lc }}/tools:latest
+
+ permissions:
+ contents: read
+ packages: read
+
+ steps:
+ - name: Checkout master directory
+ uses: actions/checkout@v3
+ with:
+ path: openwrt
+
+ - name: Fix permission
+ run: |
+ chown -R buildbot:buildbot openwrt
+
+ - name: Initialization environment
+ run: |
+ TARGET=$(echo ${{ inputs.target }} | cut -d "/" -f 1)
+ SUBTARGET=$(echo ${{ inputs.target }} | cut -d "/" -f 2)
+ echo "TARGET=$TARGET" >> "$GITHUB_ENV"
+ echo "SUBTARGET=$SUBTARGET" >> "$GITHUB_ENV"
+
+ - name: Extract prebuilt tools
+ shell: su buildbot -c "sh -e {0}"
+ working-directory: openwrt
+ run: ./scripts/ext-tools.sh --tools /tools.tar
+
+ - name: Configure system
+ shell: su buildbot -c "sh -e {0}"
+ working-directory: openwrt
+ run: |
+ echo CONFIG_ALL_KMODS=y >> .config
+ echo CONFIG_DEVEL=y >> .config
+ echo CONFIG_AUTOREMOVE=y >> .config
+ echo CONFIG_CCACHE=y >> .config
+
+ echo "CONFIG_TARGET_${{ env.TARGET }}=y" >> .config
+ echo "CONFIG_TARGET_${{ env.TARGET }}_${{ env.SUBTARGET }}=y" >> .config
+
+ make defconfig
+
+ - name: Build tools
+ shell: su buildbot -c "sh -e {0}"
+ working-directory: openwrt
+ run: make tools/quilt/compile -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh
+
+ - name: Refresh Kernel patches
+ shell: su buildbot -c "sh -e {0}"
+ working-directory: openwrt
+ run: |
+ make target/linux/refresh V=s
+
+ . .github/workflows/scripts/ci_helpers.sh
+
+ if git diff --name-only --exit-code; then
+ success "Kernel patches for ${{ env.TARGET }}/${{ env.SUBTARGET }} seems ok"
+ else
+ err "Kernel patches for ${{ env.TARGET }}/${{ env.SUBTARGET }} require refresh. (run 'make target/linux/refresh' and force push this pr)"
+ exit 1
+ fi