Build and Release OnePlus Kernels #531
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build and Release OnePlus Kernels | |
| permissions: | |
| contents: write | |
| actions: write | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| make_release: | |
| description: 'Do you want to create a release?' | |
| required: true | |
| type: boolean | |
| default: false | |
| ksun_branch: | |
| description: 'Enter KernelSU Next Branch or commit hash (blank for stable tag)' | |
| required: true | |
| type: string | |
| default: next | |
| optimize_level: | |
| description: "Compiler optimization level" | |
| required: true | |
| type: choice | |
| options: [O2, O3] | |
| default: O2 | |
| android12-5_10_susfs_branch_or_commit: | |
| description: 'Enter SusFS Branch or commit hash for android12-5.10' | |
| type: string | |
| default: '' | |
| android13-5_10_susfs_branch_or_commit: | |
| description: 'Enter SusFS Branch or commit hash for android13-5.10' | |
| type: string | |
| default: '' | |
| android13-5_15_susfs_branch_or_commit: | |
| description: 'Enter SusFS Branch or commit hash for android13-5.15' | |
| type: string | |
| default: '' | |
| android14-5_15_susfs_branch_or_commit: | |
| description: 'Enter SusFS Branch or commit hash for android14-5.15' | |
| type: string | |
| default: '' | |
| android14-6_1_susfs_branch_or_commit: | |
| description: 'Enter SusFS Branch or commit hash for android14-6.1' | |
| type: string | |
| default: '' | |
| android15-6_6_susfs_branch_or_commit: | |
| description: 'Enter SusFS Branch or commit hash for android15-6.6' | |
| type: string | |
| default: '' | |
| jobs: | |
| build: | |
| name: build (${{ matrix.model }}, ${{ matrix.soc }}, ${{ matrix.branch }}, ${{ matrix.manifest }}, ${{ matrix.android_version }}, ${{ matrix.kernel_version }}, ${{ inputs.ksun_branch }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - model: OP11 | |
| soc: kalama | |
| branch: oneplus/sm8550 | |
| manifest: oneplus_11_v.xml | |
| android_version: android13 | |
| kernel_version: '5.15' | |
| steps: | |
| - name: Resolve SUSFS branch from inputs | |
| id: susfs | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| key="${{ matrix.android_version }}-${{ matrix.kernel_version }}" | |
| declare -A map=( | |
| ["android12-5.10"]="${{ inputs.android12-5_10_susfs_branch_or_commit }}" | |
| ["android13-5.10"]="${{ inputs.android13-5_10_susfs_branch_or_commit }}" | |
| ["android13-5.15"]="${{ inputs.android13-5_15_susfs_branch_or_commit }}" | |
| ["android14-5.15"]="${{ inputs.android14-5_15_susfs_branch_or_commit }}" | |
| ["android14-6.1"]="${{ inputs.android14-6_1_susfs_branch_or_commit }}" | |
| ["android15-6.6"]="${{ inputs.android15-6_6_susfs_branch_or_commit }}" | |
| ) | |
| # Only validate mapping presence; allow empty string value to be passed through. | |
| if [[ -z "${map[$key]+_exists}" ]]; then | |
| echo "Unsupported combo (no mapping): $key" >&2 | |
| exit 1 | |
| fi | |
| echo "susfs_branch=${map[$key]}" >> "$GITHUB_OUTPUT" | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 1 | |
| - name: Build Kernel | |
| uses: WildKernels/OnePlus_KernelSU_SUSFS/.github/actions@main | |
| with: | |
| model: ${{ matrix.model }} | |
| soc: ${{ matrix.soc }} | |
| branch: ${{ matrix.branch }} | |
| manifest: ${{ matrix.manifest }} | |
| ksun_branch: ${{ inputs.ksun_branch }} | |
| susfs_commit_hash_or_branch: ${{ steps.susfs.outputs.susfs_branch }} | |
| optimize_level: ${{ inputs.optimize_level }} | |
| trigger-release: | |
| needs: [build] | |
| runs-on: ubuntu-latest | |
| if: ${{ inputs.make_release }} | |
| env: | |
| REPO_OWNER: ${{ github.repository_owner }} | |
| REPO_NAME: ${{ github.event.repository.name }} | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| RELEASE_NAME: '*TEST BUILD* OnePlus Kernels With KernelSU Next & SUSFS v1.5.12 *TEST BUILD*' | |
| RELEASE_NOTES: | | |
| This release contains KernelSU Next and SUSFS v1.5.12 | |
| Module: | |
| -> https://github.com/sidex15/ksu_module_susfs | |
| Non-Official Managers: | |
| -> https://github.com/KernelSU-Next/KernelSU-Next | |
| Features: | |
| [+] KernelSU-Next / WildKSU Manager Support | |
| [+] SUSFS v1.5.12 | |
| [+] Wireguard Support | |
| [+] Magic Mount Support | |
| [+] Ptrace message leak fix for kernels < 5.16 | |
| [+] Manual Hooks [scope_min_manual_hooks_v1.4] | |
| [+] CONFIG_TMPFS_XATTR Support [Mountify Support] | |
| [+] BBR v1 Support. | |
| [+] HMBIRD scx support for OnePlus 13 & OnePlus Ace 5 Pro. | |
| [+] Baseband Guard Support (BBG). | |
| [+] xx_maps hide. | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v3 | |
| - name: Generate and Create New Tag | |
| run: | | |
| BASE_TAG="v1.5.12-r0" | |
| LATEST_TAG=$(gh api repos/$REPO_OWNER/$REPO_NAME/tags --jq '.[0].name') | |
| if [ -z "$LATEST_TAG" ]; then | |
| LATEST_TAG="$BASE_TAG" | |
| else | |
| LATEST_TAG=$(printf "%s\n%s\n" "$LATEST_TAG" "$BASE_TAG" | sort -rV | head -n1) | |
| fi | |
| NEW_TAG=$(echo "$LATEST_TAG" | awk -F'-r' '{suffix=$2; if (!suffix) suffix=0; suffix++; printf "%s-r%d", $1, suffix}') | |
| echo "New tag: $NEW_TAG" | |
| echo "NEW_TAG=${NEW_TAG}" >> $GITHUB_ENV | |
| git tag $NEW_TAG | |
| git push origin $NEW_TAG | |
| - name: Download Artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: ./downloaded-artifacts | |
| - name: Create GitHub Release | |
| uses: actions/create-release@v1 | |
| with: | |
| tag_name: ${{ env.NEW_TAG }} | |
| prerelease: true | |
| release_name: ${{ env.RELEASE_NAME }} | |
| body: ${{ env.RELEASE_NOTES }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Upload Release Assets Dynamically | |
| run: | | |
| for file in ./downloaded-artifacts/kernel-*/*; do | |
| if [ -d "$file" ]; then | |
| continue | |
| fi | |
| echo "Uploading $file..." | |
| gh release upload ${{ env.NEW_TAG }} "$file" | |
| done | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| NEW_TAG: ${{ env.NEW_TAG }} | |
| - name: Display Files Uploaded | |
| run: | | |
| echo "GitHub release created with the following files:" | |
| ls ./downloaded-artifacts/**/* |