| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- name: Build-verified only GKI root variants
- on:
- workflow_dispatch:
- inputs:
- kernel_build_version:
- description: "Supported GKI target"
- required: true
- type: choice
- options:
- - android12-5.10
- - android13-5.10
- - android13-5.15
- - android14-5.15
- - android14-6.1
- - android15-6.6
- - android16-6.12
- default: android14-6.1
- os_patch_level:
- description: "Patch date (YYYY-MM), kernel sublevel, lts (builds the LTS branch), or all"
- required: true
- type: string
- default: lts
- commit_mode:
- description: "verified = audited pinned SHAs, latest = branch tips at run time"
- required: false
- type: choice
- options:
- - verified
- - latest
- default: verified
- permissions:
- contents: read
- actions: write
- jobs:
- resolve-pins:
- runs-on: ubuntu-latest
- outputs:
- config_file: ${{ steps.pins.outputs.config_file }}
- susfs_commit: ${{ steps.pins.outputs.susfs_commit }}
- nomount_commit: ${{ steps.pins.outputs.nomount_commit }}
- ksu_commit: ${{ steps.pins.outputs.ksu_commit }}
- next_commit: ${{ steps.pins.outputs.next_commit }}
- resukisu_commit: ${{ steps.pins.outputs.resukisu_commit }}
- steps:
- - id: pins
- shell: bash
- run: |
- set -euo pipefail
- # Verified pins. KernelSU-Next (next) is intentionally NOT pinned: it
- # always resolves at latest. SUSFS below uses the verified pinned SHA per
- # GKI target; build.yml overrides SUSFS to latest ONLY for the next
- # (KernelSU-Next) variant, keeping kernelsu/resukisu stuck on the pin.
- nomount_commit="26417ca5fb4021c4fd0c886e6ee8662d3f7b117a"
- ksu_commit="abc3fdcf5b6ec9e0add131e600d55853a0fffbf2"
- resukisu_commit="03b60f260cce36f23efbd26c9c334edfdc9ce7eb"
- case "${{ inputs.kernel_build_version }}" in
- android12-5.10) susfs_commit="44d9fed948b6d21c25ace142081418690f568dd3" ;;
- android13-5.10) susfs_commit="83ffa9f7a9039e233af3d47aeeb838278b23ef8c" ;;
- android13-5.15) susfs_commit="9623bd64ccb195dc538af70133ad3374f30de795" ;;
- android14-5.15) susfs_commit="fcfdf108e3003fe97a95bf6ed238eb13a93b4aba" ;;
- android14-6.1) susfs_commit="0ff932799d898366d57b3b5984d85cdbcfcfad0a" ;;
- android15-6.6) susfs_commit="7767a4614146d44f7a81a18b6e687dd8316fc959" ;;
- android16-6.12) susfs_commit="78a1f10a21df7271329fe5a733a3cb43c9c6c230" ;;
- *) echo "Unsupported GKI target." >&2; exit 2 ;;
- esac
- next_commit="$(git ls-remote https://github.com/KernelSU-Next/KernelSU-Next.git refs/heads/dev | cut -f1)"
- if [ "${{ inputs.commit_mode }}" = "latest" ]; then
- echo "Resolving latest branch tips..."
- nomount_commit="$(git ls-remote https://github.com/maxsteeel/nomount.git refs/heads/dev | cut -f1)"
- ksu_commit="$(git ls-remote https://github.com/tiann/KernelSU.git refs/heads/main | cut -f1)"
- resukisu_commit="$(git ls-remote https://github.com/ReSukiSU/ReSukiSU.git refs/heads/main | cut -f1)"
- susfs_commit="$(git ls-remote https://gitlab.com/simonpunk/susfs4ksu.git "refs/heads/gki-${{ inputs.kernel_build_version }}" | cut -f1)"
- fi
- echo "config_file=.github/config/${{ inputs.kernel_build_version }}.json" >> "$GITHUB_OUTPUT"
- echo "susfs_commit=$susfs_commit" >> "$GITHUB_OUTPUT"
- echo "nomount_commit=$nomount_commit" >> "$GITHUB_OUTPUT"
- echo "ksu_commit=$ksu_commit" >> "$GITHUB_OUTPUT"
- echo "next_commit=$next_commit" >> "$GITHUB_OUTPUT"
- echo "resukisu_commit=$resukisu_commit" >> "$GITHUB_OUTPUT"
- build-nomount-module:
- needs: resolve-pins
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v7
- - name: Build NoMount metamodule
- id: nomount-metamodule
- uses: ./.github/actions/nomount-metamodule
- with:
- commit: ${{ needs.resolve-pins.outputs.nomount_commit }}
- - name: Upload NoMount metamodule
- uses: actions/upload-artifact@v7
- with:
- name: NoMount-Metamodule
- path: ${{ steps.nomount-metamodule.outputs.module_dir }}
- if-no-files-found: error
- build:
- needs: [resolve-pins, build-nomount-module]
- strategy:
- fail-fast: false
- matrix:
- include:
- - flavor: kernelsu
- commit: ${{ needs.resolve-pins.outputs.ksu_commit }}
- variant: KernelSU
- - flavor: next
- commit: ${{ needs.resolve-pins.outputs.next_commit }}
- variant: KernelSU-Next
- - flavor: resukisu
- commit: ${{ needs.resolve-pins.outputs.resukisu_commit }}
- variant: ReSukiSU
- uses: ./.github/workflows/prepare.yml
- with:
- config_file: ${{ needs.resolve-pins.outputs.config_file }}
- feature_set: SUSFS+NTSync+Ptrace+Unicode+BPF
- susfs_commit: ${{ needs.resolve-pins.outputs.susfs_commit }}
- root_flavor: ${{ matrix.flavor }}
- root_commit: ${{ matrix.commit }}
- nomount_commit: ${{ needs.resolve-pins.outputs.nomount_commit }}
- preserve_abi: true
- build_bypass: false
- os_patch_level: ${{ inputs.os_patch_level }}
- variant: ${{ matrix.variant }}
- secrets: inherit
|