|
@@ -122,27 +122,111 @@ jobs:
|
|
|
retention-days: 1
|
|
retention-days: 1
|
|
|
if-no-files-found: warn
|
|
if-no-files-found: warn
|
|
|
|
|
|
|
|
- resolve-nomount:
|
|
|
|
|
|
|
+ resolve-sources:
|
|
|
runs-on: ubuntu-latest
|
|
runs-on: ubuntu-latest
|
|
|
outputs:
|
|
outputs:
|
|
|
nomount_commit: ${{ steps.resolve.outputs.nomount_commit }}
|
|
nomount_commit: ${{ steps.resolve.outputs.nomount_commit }}
|
|
|
|
|
+ kernelsu_commit: ${{ steps.resolve.outputs.kernelsu_commit }}
|
|
|
|
|
+ kernelsu_branch: ${{ steps.resolve.outputs.kernelsu_branch }}
|
|
|
|
|
+ susfs_commit_android12_5_10: ${{ steps.resolve.outputs.susfs_commit_android12_5_10 }}
|
|
|
|
|
+ susfs_commit_android13_5_10: ${{ steps.resolve.outputs.susfs_commit_android13_5_10 }}
|
|
|
|
|
+ susfs_commit_android13_5_15: ${{ steps.resolve.outputs.susfs_commit_android13_5_15 }}
|
|
|
|
|
+ susfs_commit_android14_5_15: ${{ steps.resolve.outputs.susfs_commit_android14_5_15 }}
|
|
|
|
|
+ susfs_commit_android14_6_1: ${{ steps.resolve.outputs.susfs_commit_android14_6_1 }}
|
|
|
|
|
+ susfs_commit_android15_6_6: ${{ steps.resolve.outputs.susfs_commit_android15_6_6 }}
|
|
|
|
|
+ susfs_commit_android16_6_12: ${{ steps.resolve.outputs.susfs_commit_android16_6_12 }}
|
|
|
steps:
|
|
steps:
|
|
|
- - name: Resolve latest NoMount dev commit
|
|
|
|
|
|
|
+ - name: Resolve latest component commits
|
|
|
id: resolve
|
|
id: resolve
|
|
|
- if: ${{ contains(inputs.feature_set, 'NOMOUNT') || inputs.feature_set == 'FULL' }}
|
|
|
|
|
shell: bash
|
|
shell: bash
|
|
|
run: |
|
|
run: |
|
|
|
set -euo pipefail
|
|
set -euo pipefail
|
|
|
- sha="$(git ls-remote https://github.com/maxsteeel/nomount.git refs/heads/dev | awk '{print $1}')"
|
|
|
|
|
- if [ -z "$sha" ] || ! [[ "$sha" =~ ^[0-9a-f]{40}$ ]]; then
|
|
|
|
|
- echo "Failed to resolve NoMount dev branch tip." >&2
|
|
|
|
|
- exit 1
|
|
|
|
|
|
|
+
|
|
|
|
|
+ retry() {
|
|
|
|
|
+ local n=0
|
|
|
|
|
+ until [ "$n" -ge 5 ]; do
|
|
|
|
|
+ "$@" && return 0
|
|
|
|
|
+ n=$((n+1))
|
|
|
|
|
+ echo "retry $n/5 failed for: $*" >&2
|
|
|
|
|
+ sleep 5
|
|
|
|
|
+ done
|
|
|
|
|
+ return 1
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ resolve_sha() { # repo ref
|
|
|
|
|
+ retry git ls-remote "$1" "$2" | awk '{print $1; exit}'
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ emit() { # key value
|
|
|
|
|
+ if [ -z "$2" ] || ! [[ "$2" =~ ^[0-9a-f]{40}$ ]]; then
|
|
|
|
|
+ echo "Failed to resolve $1 (got: ${2:-empty})" >&2
|
|
|
|
|
+ exit 1
|
|
|
|
|
+ fi
|
|
|
|
|
+ echo "$1=$2" >> "$GITHUB_OUTPUT"
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ # NoMount (dev tip)
|
|
|
|
|
+ emit nomount_commit "$(resolve_sha https://github.com/maxsteeel/nomount.git refs/heads/dev)"
|
|
|
|
|
+
|
|
|
|
|
+ # KernelSU-Next (pershoot dev-susfs; fall back to official dev for the manager)
|
|
|
|
|
+ KSU_INPUT="${{ inputs.ksu_branch }}"
|
|
|
|
|
+ if [ -z "$KSU_INPUT" ]; then
|
|
|
|
|
+ KSU_INPUT="dev-susfs"
|
|
|
|
|
+ fi
|
|
|
|
|
+ KSU_REF="refs/heads/$KSU_INPUT"
|
|
|
|
|
+ if ! retry git ls-remote --heads https://github.com/KernelSU-Next/KernelSU-Next.git "$KSU_INPUT" | grep -q .; then
|
|
|
|
|
+ # Treat the input as an official-dev commit SHA when it's not a fork branch
|
|
|
|
|
+ official_sha="$(resolve_sha https://github.com/KernelSU-Next/KernelSU-Next.git refs/heads/dev)"
|
|
|
|
|
+ emit kernelsu_commit "$official_sha"
|
|
|
|
|
+ emit kernelsu_branch "dev"
|
|
|
|
|
+ else
|
|
|
|
|
+ emit kernelsu_commit "$(resolve_sha https://github.com/KernelSU-Next/KernelSU-Next.git "$KSU_REF")"
|
|
|
|
|
+ emit kernelsu_branch "$KSU_INPUT"
|
|
|
fi
|
|
fi
|
|
|
- echo "nomount_commit=$sha" >> "$GITHUB_OUTPUT"
|
|
|
|
|
- echo "Resolved NoMount dev commit: $sha"
|
|
|
|
|
|
|
+
|
|
|
|
|
+ # SUSFS per supported Android/kernel branch (gitlab simonpunk/susfs4ksu)
|
|
|
|
|
+ declare -A SUSFS_BRANCHES=(
|
|
|
|
|
+ [susfs_commit_android12_5_10]="gki-android12-5.10"
|
|
|
|
|
+ [susfs_commit_android13_5_10]="gki-android13-5.10"
|
|
|
|
|
+ [susfs_commit_android13_5_15]="gki-android13-5.15"
|
|
|
|
|
+ [susfs_commit_android14_5_15]="gki-android14-5.15"
|
|
|
|
|
+ [susfs_commit_android14_6_1]="gki-android14-6.1"
|
|
|
|
|
+ [susfs_commit_android15_6_6]="gki-android15-6.6"
|
|
|
|
|
+ [susfs_commit_android16_6_12]="gki-android16-6.12"
|
|
|
|
|
+ )
|
|
|
|
|
+ for key in "${!SUSFS_BRANCHES[@]}"; do
|
|
|
|
|
+ emit "$key" "$(resolve_sha https://gitlab.com/simonpunk/susfs4ksu.git refs/heads/${SUSFS_BRANCHES[$key]})"
|
|
|
|
|
+ done
|
|
|
|
|
+
|
|
|
|
|
+ echo "Resolved:"
|
|
|
|
|
+ env | grep -E '^(nomount_commit|kernelsu_commit|kernelsu_branch|susfs_commit_)' | sort
|
|
|
|
|
+
|
|
|
|
|
+ - name: Clone shared source repos once
|
|
|
|
|
+ if: ${{ contains(inputs.feature_set, 'NOMOUNT') || inputs.feature_set == 'FULL' }}
|
|
|
|
|
+ shell: bash
|
|
|
|
|
+ run: |
|
|
|
|
|
+ set -euo pipefail
|
|
|
|
|
+ mkdir -p sources
|
|
|
|
|
+
|
|
|
|
|
+ # NoMount kernel sources at the resolved dev tip
|
|
|
|
|
+ git clone --depth=1 --branch dev https://github.com/maxsteeel/nomount.git sources/nomount
|
|
|
|
|
+ [ "$(git -C sources/nomount rev-parse HEAD)" = "${{ steps.resolve.outputs.nomount_commit }}" ] || \
|
|
|
|
|
+ { echo "NoMount clone HEAD mismatch" >&2; exit 1; }
|
|
|
|
|
+
|
|
|
|
|
+ echo "sources_dir=$PWD/sources" >> "$GITHUB_ENV"
|
|
|
|
|
+
|
|
|
|
|
+ - name: Upload sources artifact
|
|
|
|
|
+ if: ${{ contains(inputs.feature_set, 'NOMOUNT') || inputs.feature_set == 'FULL' }}
|
|
|
|
|
+ uses: actions/upload-artifact@v7
|
|
|
|
|
+ with:
|
|
|
|
|
+ name: sources
|
|
|
|
|
+ path: sources
|
|
|
|
|
+ retention-days: 1
|
|
|
|
|
+ if-no-files-found: error
|
|
|
|
|
+ compression-level: 9
|
|
|
|
|
|
|
|
build-nomount-module:
|
|
build-nomount-module:
|
|
|
- needs: resolve-nomount
|
|
|
|
|
|
|
+ needs: resolve-sources
|
|
|
runs-on: ubuntu-latest
|
|
runs-on: ubuntu-latest
|
|
|
steps:
|
|
steps:
|
|
|
- uses: actions/checkout@v7
|
|
- uses: actions/checkout@v7
|
|
@@ -153,7 +237,7 @@ jobs:
|
|
|
if: ${{ contains(inputs.feature_set, 'NOMOUNT') || inputs.feature_set == 'FULL' }}
|
|
if: ${{ contains(inputs.feature_set, 'NOMOUNT') || inputs.feature_set == 'FULL' }}
|
|
|
uses: ./.github/actions/nomount-metamodule
|
|
uses: ./.github/actions/nomount-metamodule
|
|
|
with:
|
|
with:
|
|
|
- commit: ${{ needs.resolve-nomount.outputs.nomount_commit }}
|
|
|
|
|
|
|
+ commit: ${{ needs.resolve-sources.outputs.nomount_commit }}
|
|
|
|
|
|
|
|
- name: Upload NoMount metamodule
|
|
- name: Upload NoMount metamodule
|
|
|
if: ${{ contains(inputs.feature_set, 'NOMOUNT') || inputs.feature_set == 'FULL' }}
|
|
if: ${{ contains(inputs.feature_set, 'NOMOUNT') || inputs.feature_set == 'FULL' }}
|
|
@@ -167,7 +251,7 @@ jobs:
|
|
|
build-android12-5-10:
|
|
build-android12-5-10:
|
|
|
needs:
|
|
needs:
|
|
|
- prepare-ccache
|
|
- prepare-ccache
|
|
|
- - resolve-nomount
|
|
|
|
|
|
|
+ - resolve-sources
|
|
|
if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android12-5.10') }}
|
|
if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android12-5.10') }}
|
|
|
uses: ./.github/workflows/prepare.yml
|
|
uses: ./.github/workflows/prepare.yml
|
|
|
with:
|
|
with:
|
|
@@ -175,13 +259,13 @@ jobs:
|
|
|
feature_set: ${{ inputs.feature_set || 'FULL' }}
|
|
feature_set: ${{ inputs.feature_set || 'FULL' }}
|
|
|
ksu_branch: ${{ inputs.ksu_branch }}
|
|
ksu_branch: ${{ inputs.ksu_branch }}
|
|
|
susfs_commit: ${{ inputs.susfs_commit_android12-5-10 }}
|
|
susfs_commit: ${{ inputs.susfs_commit_android12-5-10 }}
|
|
|
- nomount_commit: ${{ needs.resolve-nomount.outputs.nomount_commit }}
|
|
|
|
|
|
|
+ nomount_commit: ${{ needs.resolve-sources.outputs.nomount_commit }}
|
|
|
secrets: inherit
|
|
secrets: inherit
|
|
|
|
|
|
|
|
build-android13-5-10:
|
|
build-android13-5-10:
|
|
|
needs:
|
|
needs:
|
|
|
- prepare-ccache
|
|
- prepare-ccache
|
|
|
- - resolve-nomount
|
|
|
|
|
|
|
+ - resolve-sources
|
|
|
if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android13-5.10') }}
|
|
if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android13-5.10') }}
|
|
|
uses: ./.github/workflows/prepare.yml
|
|
uses: ./.github/workflows/prepare.yml
|
|
|
with:
|
|
with:
|
|
@@ -189,13 +273,13 @@ jobs:
|
|
|
feature_set: ${{ inputs.feature_set || 'FULL' }}
|
|
feature_set: ${{ inputs.feature_set || 'FULL' }}
|
|
|
ksu_branch: ${{ inputs.ksu_branch }}
|
|
ksu_branch: ${{ inputs.ksu_branch }}
|
|
|
susfs_commit: ${{ inputs.susfs_commit_android13-5-10 }}
|
|
susfs_commit: ${{ inputs.susfs_commit_android13-5-10 }}
|
|
|
- nomount_commit: ${{ needs.resolve-nomount.outputs.nomount_commit }}
|
|
|
|
|
|
|
+ nomount_commit: ${{ needs.resolve-sources.outputs.nomount_commit }}
|
|
|
secrets: inherit
|
|
secrets: inherit
|
|
|
|
|
|
|
|
build-android13-5-15:
|
|
build-android13-5-15:
|
|
|
needs:
|
|
needs:
|
|
|
- prepare-ccache
|
|
- prepare-ccache
|
|
|
- - resolve-nomount
|
|
|
|
|
|
|
+ - resolve-sources
|
|
|
if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android13-5.15') }}
|
|
if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android13-5.15') }}
|
|
|
uses: ./.github/workflows/prepare.yml
|
|
uses: ./.github/workflows/prepare.yml
|
|
|
with:
|
|
with:
|
|
@@ -203,13 +287,13 @@ jobs:
|
|
|
feature_set: ${{ inputs.feature_set || 'FULL' }}
|
|
feature_set: ${{ inputs.feature_set || 'FULL' }}
|
|
|
ksu_branch: ${{ inputs.ksu_branch }}
|
|
ksu_branch: ${{ inputs.ksu_branch }}
|
|
|
susfs_commit: ${{ inputs.susfs_commit_android13-5-15 }}
|
|
susfs_commit: ${{ inputs.susfs_commit_android13-5-15 }}
|
|
|
- nomount_commit: ${{ needs.resolve-nomount.outputs.nomount_commit }}
|
|
|
|
|
|
|
+ nomount_commit: ${{ needs.resolve-sources.outputs.nomount_commit }}
|
|
|
secrets: inherit
|
|
secrets: inherit
|
|
|
|
|
|
|
|
build-android14-5-15:
|
|
build-android14-5-15:
|
|
|
needs:
|
|
needs:
|
|
|
- prepare-ccache
|
|
- prepare-ccache
|
|
|
- - resolve-nomount
|
|
|
|
|
|
|
+ - resolve-sources
|
|
|
if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android14-5.15') }}
|
|
if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android14-5.15') }}
|
|
|
uses: ./.github/workflows/prepare.yml
|
|
uses: ./.github/workflows/prepare.yml
|
|
|
with:
|
|
with:
|
|
@@ -217,13 +301,13 @@ jobs:
|
|
|
feature_set: ${{ inputs.feature_set || 'FULL' }}
|
|
feature_set: ${{ inputs.feature_set || 'FULL' }}
|
|
|
ksu_branch: ${{ inputs.ksu_branch }}
|
|
ksu_branch: ${{ inputs.ksu_branch }}
|
|
|
susfs_commit: ${{ inputs.susfs_commit_android14-5-15 }}
|
|
susfs_commit: ${{ inputs.susfs_commit_android14-5-15 }}
|
|
|
- nomount_commit: ${{ needs.resolve-nomount.outputs.nomount_commit }}
|
|
|
|
|
|
|
+ nomount_commit: ${{ needs.resolve-sources.outputs.nomount_commit }}
|
|
|
secrets: inherit
|
|
secrets: inherit
|
|
|
|
|
|
|
|
build-android14-6-1:
|
|
build-android14-6-1:
|
|
|
needs:
|
|
needs:
|
|
|
- prepare-ccache
|
|
- prepare-ccache
|
|
|
- - resolve-nomount
|
|
|
|
|
|
|
+ - resolve-sources
|
|
|
if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android14-6.1') }}
|
|
if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android14-6.1') }}
|
|
|
uses: ./.github/workflows/prepare.yml
|
|
uses: ./.github/workflows/prepare.yml
|
|
|
with:
|
|
with:
|
|
@@ -231,13 +315,13 @@ jobs:
|
|
|
feature_set: ${{ inputs.feature_set || 'FULL' }}
|
|
feature_set: ${{ inputs.feature_set || 'FULL' }}
|
|
|
ksu_branch: ${{ inputs.ksu_branch }}
|
|
ksu_branch: ${{ inputs.ksu_branch }}
|
|
|
susfs_commit: ${{ inputs.susfs_commit_android14-6-1 }}
|
|
susfs_commit: ${{ inputs.susfs_commit_android14-6-1 }}
|
|
|
- nomount_commit: ${{ needs.resolve-nomount.outputs.nomount_commit }}
|
|
|
|
|
|
|
+ nomount_commit: ${{ needs.resolve-sources.outputs.nomount_commit }}
|
|
|
secrets: inherit
|
|
secrets: inherit
|
|
|
|
|
|
|
|
build-android15-6-6:
|
|
build-android15-6-6:
|
|
|
needs:
|
|
needs:
|
|
|
- prepare-ccache
|
|
- prepare-ccache
|
|
|
- - resolve-nomount
|
|
|
|
|
|
|
+ - resolve-sources
|
|
|
if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android15-6.6') }}
|
|
if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android15-6.6') }}
|
|
|
uses: ./.github/workflows/prepare.yml
|
|
uses: ./.github/workflows/prepare.yml
|
|
|
with:
|
|
with:
|
|
@@ -245,13 +329,13 @@ jobs:
|
|
|
feature_set: ${{ inputs.feature_set || 'FULL' }}
|
|
feature_set: ${{ inputs.feature_set || 'FULL' }}
|
|
|
ksu_branch: ${{ inputs.ksu_branch }}
|
|
ksu_branch: ${{ inputs.ksu_branch }}
|
|
|
susfs_commit: ${{ inputs.susfs_commit_android15-6-6 }}
|
|
susfs_commit: ${{ inputs.susfs_commit_android15-6-6 }}
|
|
|
- nomount_commit: ${{ needs.resolve-nomount.outputs.nomount_commit }}
|
|
|
|
|
|
|
+ nomount_commit: ${{ needs.resolve-sources.outputs.nomount_commit }}
|
|
|
secrets: inherit
|
|
secrets: inherit
|
|
|
|
|
|
|
|
build-android16-6-12:
|
|
build-android16-6-12:
|
|
|
needs:
|
|
needs:
|
|
|
- prepare-ccache
|
|
- prepare-ccache
|
|
|
- - resolve-nomount
|
|
|
|
|
|
|
+ - resolve-sources
|
|
|
if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android16-6.12') }}
|
|
if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android16-6.12') }}
|
|
|
uses: ./.github/workflows/prepare.yml
|
|
uses: ./.github/workflows/prepare.yml
|
|
|
with:
|
|
with:
|
|
@@ -259,7 +343,7 @@ jobs:
|
|
|
feature_set: ${{ inputs.feature_set || 'FULL' }}
|
|
feature_set: ${{ inputs.feature_set || 'FULL' }}
|
|
|
ksu_branch: ${{ inputs.ksu_branch }}
|
|
ksu_branch: ${{ inputs.ksu_branch }}
|
|
|
susfs_commit: ${{ inputs.susfs_commit_android16-6-12 }}
|
|
susfs_commit: ${{ inputs.susfs_commit_android16-6-12 }}
|
|
|
- nomount_commit: ${{ needs.resolve-nomount.outputs.nomount_commit }}
|
|
|
|
|
|
|
+ nomount_commit: ${{ needs.resolve-sources.outputs.nomount_commit }}
|
|
|
secrets: inherit
|
|
secrets: inherit
|
|
|
|
|
|
|
|
rej:
|
|
rej:
|