Build and Release GKI Kernels #2
This file contains 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 GKI Kernels | |
permissions: | |
contents: write # Allow writing to repository contents (for pushing tags) | |
actions: write # Allows triggering actions | |
on: | |
workflow_dispatch: | |
inputs: | |
build_a12_5_10: | |
description: 'Build Android 12 5.10 kernel?' | |
required: true | |
type: boolean | |
default: true | |
build_a13_5_10: | |
description: 'Build Android 13 5.10 kernel?' | |
required: true | |
type: boolean | |
default: true | |
build_a13_5_15: | |
description: 'Build Android 13 5.15 kernel?' | |
required: true | |
type: boolean | |
default: true | |
build_a14_5_15: | |
description: 'Build Android 14 5.15 kernel?' | |
required: true | |
type: boolean | |
default: true | |
build_a14_6_1: | |
description: 'Build Android 14 6.1 kernel?' | |
required: true | |
type: boolean | |
default: true | |
make_release: | |
description: 'Do you want to create a release?' | |
required: true | |
type: boolean | |
default: false | |
next_branch: | |
description: "Choose next branch" | |
required: true | |
type: choice | |
options: | |
- Stable | |
- Dev | |
- Other | |
default: Stable | |
next_branch_other: | |
description: "If 'Other' is selected, specify your custom branch" | |
required: false | |
type: string # This input is required if 'Other' is chosen | |
default: "" # Default is empty, but can be filled in if 'Other' is selected | |
jobs: | |
build-kernel-a12-5-10: | |
uses: ./.github/workflows/build-kernel-a12-5.10.yml | |
secrets: inherit | |
if: ${{ inputs.build_a12_5_10 }} | |
with: | |
next_branch: ${{ inputs.next_branch }} | |
next_branch_other: ${{ inputs.next_branch_other }} | |
build-kernel-a13-5-10: | |
uses: ./.github/workflows/build-kernel-a13-5.10.yml | |
secrets: inherit | |
if: ${{ inputs.build_a13_5_10 }} | |
with: | |
next_branch: ${{ inputs.next_branch }} | |
next_branch_other: ${{ inputs.next_branch_other }} | |
build-kernel-a13-5-15: | |
uses: ./.github/workflows/build-kernel-a13-5.15.yml | |
secrets: inherit | |
if: ${{ inputs.build_a13_5_15 }} | |
with: | |
next_branch: ${{ inputs.next_branch }} | |
next_branch_other: ${{ inputs.next_branch_other }} | |
build-kernel-a14-5-15: | |
uses: ./.github/workflows/build-kernel-a14-5.15.yml | |
secrets: inherit | |
if: ${{ inputs.build_a14_5_15 }} | |
with: | |
next_branch: ${{ inputs.next_branch }} | |
next_branch_other: ${{ inputs.next_branch_other }} | |
build-kernel-a14-6-1: | |
uses: ./.github/workflows/build-kernel-a14-6.1.yml | |
secrets: inherit | |
if: ${{ inputs.build_a14_6_1 }} | |
with: | |
next_branch: ${{ inputs.next_branch }} | |
next_branch_other: ${{ inputs.next_branch_other }} | |
trigger-release: | |
runs-on: ubuntu-latest | |
needs: | |
- build-kernel-a12-5-10 | |
- build-kernel-a13-5-10 | |
- build-kernel-a13-5-15 | |
- build-kernel-a14-5-15 | |
- build-kernel-a14-6-1 | |
if: ${{ inputs.make_release }} | |
env: | |
REPO_OWNER: WildPlusKernel | |
REPO_NAME: GKI_KernelSU_SUSFS | |
GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} | |
RELEASE_NAME: "*TEST BUILD* GKI Kernels With KernelSU Next & SUSFS v1.5.4 *TEST BUILD*" | |
RELEASE_NOTES: | | |
This release contains KernelSU Next and SUSFS v1.5.4 | |
Module: | |
-> https://github.com/sidex15/ksu_module_susfs | |
Official Manager: | |
-> https://github.com/tiann/KernelSU | |
Non-Official Managers: | |
-> https://github.com/rifsxd/KernelSU-Next | |
-> https://github.com/backslashxx/KernelSU | |
-> https://github.com/rsuntk/KernelSU | |
-> https://github.com/5ec1cff/KernelSU | |
-> https://github.com/silvzr/KernelSU | |
-> https://github.com/sidex15/KernelSU | |
Features: | |
[+] KernelSU-Next | |
[+] SUSFS v1.5.4 | |
[+] Wireguard Support | |
[+] Maphide LineageOS Detections | |
[+] Futile Maphide for jit-zygote-cache Detections | |
[+] Magic Mount Support | |
steps: | |
# Checkout the code | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
# Get the Latest Tag from GitHub | |
- name: Generate and Create New Tag | |
run: | | |
# Fetch the latest tag from GitHub (this is the latest tag based on the GitHub API) | |
LATEST_TAG=$(gh api repos/$REPO_OWNER/$REPO_NAME/tags --jq '.[0].name') | |
if [ -z "$LATEST_TAG" ]; then | |
LATEST_TAG="v1.5.4-0" | |
fi | |
NEW_TAG=$(echo "$LATEST_TAG" | awk -F- '{suffix=$2; if (!suffix) suffix=0; suffix++; printf "%s-%d", $1, suffix}') | |
# Output the new tag to be used | |
echo "New tag: $NEW_TAG" | |
# Set the new tag as an environment variable to be used in later steps | |
echo "NEW_TAG=${NEW_TAG}" >> $GITHUB_ENV | |
# Create the tag in the repository | |
git tag $NEW_TAG | |
git push origin $NEW_TAG | |
# Download Artifacts for A12 (Only if A12 Build is successful or input is true or empty) | |
- name: Download Artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: ./downloaded-artifacts | |
# Create GitHub Release and upload files if make_release is true | |
- name: Create GitHub Release | |
uses: actions/create-release@v1 | |
with: | |
tag_name: ${{ env.NEW_TAG }} # Use the generated tag for the release | |
prerelease: true # Mark the release as a pre-release | |
release_name: ${{ env.RELEASE_NAME }} # Pass the RELEASE_NAME to the action | |
body: ${{ env.RELEASE_NOTES }} # Pass the RELEASE_NOTES to the action | |
- name: Upload Release Assets Dynamically | |
run: | | |
# Loop through all files in the downloaded-artifacts directory | |
for file in ./downloaded-artifacts/kernel-*/*; do | |
# Skip directories | |
if [ -d "$file" ]; then | |
continue | |
fi | |
# Upload the file to the GitHub release | |
echo "Uploading $file..." | |
gh release upload ${{ env.NEW_TAG }} "$file" | |
done | |
# Display Files Uploaded | |
- name: Display Files Uploaded | |
run: | | |
echo "GitHub release created with the following files:" | |
ls ./downloaded-artifacts/**/* |