name: Build Kernels permissions: contents: write actions: write on: workflow_dispatch: inputs: release_type: description: "Choose Release Type" required: true type: choice options: - Actions - Pre-Release - Release default: Actions ksun: description: "KSUN" required: false default: true type: boolean susfs: description: "SUSFS" required: false type: boolean default: true bbg: description: "BBG" required: false type: boolean default: true zeromount: description: "Zeromount" required: false type: boolean default: false unicodefix: description: "Unicode fix" required: false type: boolean default: true droidspace: description: "Droidspaces" required: false type: boolean default: true ntsync: description: "NTsync" required: false type: boolean default: true bbr: description: "bbrv3" required: false type: boolean default: true cache: description: "CCache" required: false default: true type: boolean jobs: build-samsung: uses: ./.github/workflows/kernel-samsung.yml secrets: inherit with: susfs: ${{ inputs.susfs }} bbg: ${{ inputs.bbg }} unicodefix: ${{ inputs.unicodefix }} zeromount: ${{ inputs.zeromount }} ksun: ${{ inputs.ksun }} droidspace: ${{ inputs.droidspace }} ntsync: ${{ inputs.ntsync }} bbr: ${{ inputs.bbr }} cache: ${{ inputs.cache }} release: runs-on: ubuntu-latest if: inputs.release_type != 'Actions' needs: - build-samsung env: GH_TOKEN: ${{ github.token }} RELEASE_NAME: "Samsung GKI Kernels With KSUN v3.2.0 & SUSFS v2.1.0" RELEASE_BODY: "" steps: - name: Free Disk Space if: true uses: endersonmenezes/free-disk-space@v3 # Use @main for latest, @v3 for stable with: remove_android: true remove_dotnet: true remove_haskell: true remove_tool_cache: true remove_swap: true remove_packages: "azure-cli google-cloud-cli microsoft-edge-stable google-chrome-stable firefox postgresql* temurin-* *llvm* mysql* dotnet-sdk-*" remove_packages_one_command: true remove_folders: "/usr/share/swift /usr/share/miniconda /usr/share/az* /usr/local/lib/node_modules /usr/local/share/chromium /usr/local/share/powershell /usr/local/julia /usr/local/aws-cli /usr/local/aws-sam-cli /usr/share/gradle" rm_cmd: "rmz" # Use 'rmz' for faster deletion (default: 'rm') rmz_version: "3.1.1" # Required when rm_cmd is 'rmz' testing: false - name: Checkout code uses: actions/checkout@v4 - name: Generate New Tag if: inputs.release_type != 'Actions' run: | LATEST_TAG=$(gh api repos/${{ github.repository }}/tags --jq '.[0].name' 2>/dev/null || echo "") if [ -z "$LATEST_TAG" ]; then LATEST_TAG="v2.1.0-r0" 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 - name: Download Artifacts uses: actions/download-artifact@v4 with: path: ./downloaded-artifacts pattern: '*-AnyKernel3' - name: Set release body run: | cat << 'EOF' > release_body.md **IMPORTANT DISCLAIMER** This software is provided for testing and educational purposes only. Use at your own risk. The developers are not responsible for any damage, data loss, or issues that may occur. Please ensure you have proper backups before installation. Features: EOF if [ "${{ inputs.ksun }}" = "true" ]; then cat <<'EOF' >> release_body.md -> KernelSU-Next v3.2.0 EOF fi if [ "${{ inputs.susfs }}" = "true" ]; then cat <<'EOF' >> release_body.md -> SUSFS เถž v2.1.0 -> SUSFS Inline hooks EOF fi if [ "${{ inputs.bbg }}" = "true" ]; then cat <<'EOF' >> release_body.md -> BBG: https://github.com/vc-teahouse/Baseband-guard EOF fi if [ "${{ inputs.unicodefix }}" = "true" ]; then cat <<'EOF' >> release_body.md -> unicode fix EOF fi if [ "${{ inputs.zeromount }}" = "true" ]; then cat <<'EOF' >> release_body.md -> Zeromount https://github.com/Enginex0/zeromount EOF fi if [ "${{ inputs.droidspace }}" = "true" ]; then cat <<'EOF' >> release_body.md -> droidspaces support https://github.com/ravindu644/Droidspaces-OSS EOF fi if [ "${{ inputs.ntsync }}" = "true" ]; then cat <<'EOF' >> release_body.md -> ntsync EOF fi if [ "${{ inputs.bbr }}" = "true" ]; then cat <<'EOF' >> release_body.md -> bbrv1 EOF fi cat <<'EOF' >> release_body.md Notes: - The only modifications to Samsung Kernels at this time are KSUN and SUSFS. Everything else is left at default settings. - Currently no support for KernelPatch-Next/KPM for the time being. Module: -> https://github.com/sidex15/ksu_module_susfs Manager: -> KSUN: https://github.com/KernelSU-Next/KernelSU-Next EOF - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: tag_name: ${{ env.NEW_TAG }} prerelease: ${{ inputs.release_type == 'Pre-Release' }} files: "" name: ${{ env.RELEASE_NAME }} body_path: release_body.md - name: Upload Release Assets run: | shopt -s nullglob anykernel_dirs=(./downloaded-artifacts/*/) if [ ${#anykernel_dirs[@]} -eq 0 ]; then echo "No artifact directories found under ./downloaded-artifacts; skipping upload." else for dir in "${anykernel_dirs[@]}"; do # Check if this is an AnyKernel3 artifact directory if [[ "$(basename "$dir")" == *"-AnyKernel3" ]]; then artifact_name=$(basename "$dir") echo "Creating ZIP for $artifact_name..." # Navigate into the directory and zip its contents directly cd "$dir" zip -r -9 "../../${artifact_name}.zip" ./* cd - > /dev/null echo "Uploading ${artifact_name}.zip..." gh release upload ${{ env.NEW_TAG }} "${artifact_name}.zip" fi done fi # - name: Send Telegram Notification # if: inputs.release_type != 'Actions' # run: | # RELEASE_TYPE_TEXT="" # if [ "${{ inputs.release_type }}" == "Pre-Release" ]; then # RELEASE_TYPE_TEXT="๐Ÿงช *Pre-Release*" # else # RELEASE_TYPE_TEXT="๐Ÿš€ *Release*" # fi # # curl -X POST "https://api.telegram.org/bot${{ secrets.TELEGRAM_BOT_TOKEN }}/sendMessage" \ # -F chat_id="${{ secrets.TELEGRAM_CHAT_ID }}" \ # -F message_thread_id="${{ secrets.TELEGRAM_TOPIC_ID_GKI }}" \ # -F text=" # ๐ŸŒฝ *New Kernel $RELEASE_TYPE_TEXT Uploaded* # ๐Ÿ“ฆ *Repository:* [${{ github.repository }}](https://github.com/${{ github.repository }}) # โœ๏ธ *Commit:* [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }}) # [๐Ÿ”— View GitHub Release](https://github.com/${{ github.repository }}/releases/tag/${{ env.NEW_TAG }})" \ # -F parse_mode="Markdown"