CI: Extract the OpenWrt building to own sub workflow
[openwrt/openwrt.git] / .github / workflows / check-kernel-patches.yml
1 name: Refresh kernel for target
2
3 on:
4 workflow_call:
5 inputs:
6 target:
7 required: true
8 type: string
9
10 permissions:
11 contents: read
12
13 jobs:
14 setup_build:
15 name: Setup build
16 runs-on: ubuntu-latest
17 outputs:
18 owner_lc: ${{ steps.lower_owner.outputs.owner_lc }}
19
20 steps:
21 - name: Set lower case owner name
22 id: lower_owner
23 run: |
24 OWNER_LC=$(echo "${{ github.repository_owner }}" \
25 | tr '[:upper:]' '[:lower:]')
26 echo "owner_lc=$OWNER_LC" >> $GITHUB_OUTPUT
27
28 check-patch:
29 name: Check Kernel patches
30 needs: setup_build
31 runs-on: ubuntu-latest
32
33 container: ghcr.io/${{ needs.setup_build.outputs.owner_lc }}/tools:latest
34
35 permissions:
36 contents: read
37 packages: read
38
39 steps:
40 - name: Checkout master directory
41 uses: actions/checkout@v3
42 with:
43 path: openwrt
44
45 - name: Fix permission
46 run: |
47 chown -R buildbot:buildbot openwrt
48
49 - name: Initialization environment
50 run: |
51 TARGET=$(echo ${{ inputs.target }} | cut -d "/" -f 1)
52 SUBTARGET=$(echo ${{ inputs.target }} | cut -d "/" -f 2)
53 echo "TARGET=$TARGET" >> "$GITHUB_ENV"
54 echo "SUBTARGET=$SUBTARGET" >> "$GITHUB_ENV"
55
56 - name: Extract prebuilt tools
57 shell: su buildbot -c "sh -e {0}"
58 working-directory: openwrt
59 run: ./scripts/ext-tools.sh --tools /tools.tar
60
61 - name: Configure system
62 shell: su buildbot -c "sh -e {0}"
63 working-directory: openwrt
64 run: |
65 echo CONFIG_ALL_KMODS=y >> .config
66 echo CONFIG_DEVEL=y >> .config
67 echo CONFIG_AUTOREMOVE=y >> .config
68 echo CONFIG_CCACHE=y >> .config
69
70 echo "CONFIG_TARGET_${{ env.TARGET }}=y" >> .config
71 echo "CONFIG_TARGET_${{ env.TARGET }}_${{ env.SUBTARGET }}=y" >> .config
72
73 make defconfig
74
75 - name: Build tools
76 shell: su buildbot -c "sh -e {0}"
77 working-directory: openwrt
78 run: make tools/quilt/compile -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh
79
80 - name: Refresh Kernel patches
81 shell: su buildbot -c "sh -e {0}"
82 working-directory: openwrt
83 run: |
84 make target/linux/refresh V=s
85
86 . .github/workflows/scripts/ci_helpers.sh
87
88 if git diff --name-only --exit-code; then
89 success "Kernel patches for ${{ env.TARGET }}/${{ env.SUBTARGET }} seems ok"
90 else
91 err "Kernel patches for ${{ env.TARGET }}/${{ env.SUBTARGET }} require refresh. (run 'make target/linux/refresh' and force push this pr)"
92 exit 1
93 fi