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 wksu: description: "Build with WKSU?" required: false default: true type: boolean susfs: description: "Build with SUSFS?" required: false type: boolean default: true bbg: description: "Build with BBG?" required: false type: boolean default: true zeromount: description: "Add Zeromount?" required: false type: boolean default: false unicodefix: description: "Add unicode fix?" required: false type: boolean default: true droidspace: description: "add droidspace support?" required: false type: boolean default: true ntsync: description: "add ntsync?" required: false type: boolean default: true bbr: description: "Add bbrv1? TEST" required: false type: boolean default: true jobs: build-samsung: uses: ./.github/workflows/kernel-samsung.yml secrets: inherit with: susfs: ${{ inputs.susfs }} bbg: ${{ inputs.bbg }} unicodefix: ${{ inputs.unicodefix }} zeromount: ${{ inputs.zeromount }} wksu: ${{ inputs.wksu }} droidspace: ${{ inputs.droidspace }} ntsync: ${{ inputs.ntsync }} bbr: ${{ inputs.bbr }} release: runs-on: ubuntu-latest if: inputs.release_type != 'Actions' needs: - build-samsung env: GH_TOKEN: ${{ github.token }} RELEASE_NAME: "Samsung GKI Kernels With WKSU v3.1.2 & 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.wksu }}" = "true" ]; then cat <<'EOF' >> release_body.md -> Wild KSU v3.1.2 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 cat <<'EOF' >> release_body.md Notes: - The only modifications to Samsung Kernels at this time are WKSU and SUSFS. Everything else is left at default settings. - Currently no support for KernelPatch-Next for the time being. Module: -> https://github.com/sidex15/ksu_module_susfs Managers: -> WKSU: https://github.com/WildKernels/Wild_KSU 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"