ソースを参照

ci: convert feature set to checkboxes and add branding text input

TheWildJames 3 週間 前
コミット
faf02f34b6

+ 8 - 3
.github/actions/apply-kernel-branding/action.yml

@@ -1,5 +1,5 @@
 name: 'Apply Kernel Branding & Timestamp'
-description: 'Apply Wild kernel branding to kernel version string'
+description: 'Apply kernel branding to kernel version string'
 inputs:
   variant:
     description: 'Variant of kernel to apply branding to'
@@ -16,6 +16,10 @@ inputs:
   sublevel:
     description: 'Sublevel of kernel version (e.g., 1)'
     required: true
+  brand_name:
+    description: 'Branding text appended to the version (e.g., Wild)'
+    required: false
+    default: Wild
 
 runs:
   using: "composite"
@@ -27,11 +31,12 @@ runs:
         VERSION="${{ inputs.version }}"
         ANDROID_PART=$(echo "$VERSION" | cut -d- -f1)
         KERNEL_PART=$(echo "$VERSION" | cut -d- -f2)
+        BRAND="${{ inputs.brand_name }}"
 
         if [[ ${{ inputs.version }} == "android15-6.6" || ${{ inputs.version }} == "android16-6.12" ]]; then
           KERNEL_STRING="$KERNEL_PART.${{ inputs.sublevel }}-$ANDROID_PART"
-          sed -i '$d' scripts/setlocalversion && echo "echo \"$KERNEL_STRING-Wild\"" >> scripts/setlocalversion
+          sed -i '$d' scripts/setlocalversion && echo "echo \"$KERNEL_STRING-$BRAND\"" >> scripts/setlocalversion
         else
-          sed -i '$d' scripts/setlocalversion && echo "echo \"-$ANDROID_PART-Wild\"" >> scripts/setlocalversion
+          sed -i '$d' scripts/setlocalversion && echo "echo \"-$ANDROID_PART-$BRAND\"" >> scripts/setlocalversion
         fi
         chmod +x scripts/setlocalversion

+ 5 - 0
.github/workflows/build.yml

@@ -59,6 +59,10 @@ on:
         required: false
         type: string
         default: ""
+      brand_name:
+        required: false
+        type: string
+        default: Wild
       preserve_abi:
         required: false
         type: boolean
@@ -312,6 +316,7 @@ jobs:
         android_version: ${{ inputs.android_version }}
         version: ${{ inputs.version }}
         sublevel: ${{ steps.extract.outputs.sublevel }}
+        brand_name: ${{ inputs.brand_name }}
 
     - name: Remove Protected Exports
       if: ${{ !inputs.preserve_abi }}

+ 59 - 30
.github/workflows/main.yml

@@ -37,23 +37,30 @@ on:
           - KernelSU
           - ReSukiSU
         default: KernelSU-Next
-      feature_set:
-        description: "Feature Set"
-        type: choice
-        options:
-          - SUSFS+NoMount
-          - SUSFS+BBG+NET+DS
-          - SUSFS+BBG
-          - SUSFS+NET
-          - SUSFS+DS
-          - SUSFS
-          - BBG
-          - NET
-          - DS
-          - NoMount
-          - NONE
-          - All
-        default: All
+      brand_name:
+        description: "Kernel Branding text (appended to version, e.g. Wild)"
+        type: string
+        default: Wild
+      use_susfs:
+        description: "SUSFS root-hiding patches + module"
+        type: boolean
+        default: true
+      use_nomount:
+        description: "NoMount kernel integration + metamodule"
+        type: boolean
+        default: true
+      use_bbg:
+        description: "Baseband-guard (SUSFS addon)"
+        type: boolean
+        default: true
+      use_net:
+        description: "Networking patches"
+        type: boolean
+        default: true
+      use_ds:
+        description: "DroidSpaces-OSS patches"
+        type: boolean
+        default: true
 
 jobs:
   prepare-ccache:
@@ -108,6 +115,7 @@ jobs:
       kernel_patches_commit: ${{ steps.resolve.outputs.kernel_patches_commit }}
       anykernel3_commit: ${{ steps.resolve.outputs.anykernel3_commit }}
       droidspaces_commit: ${{ steps.resolve.outputs.droidspaces_commit }}
+      feature_set: ${{ steps.features.outputs.feature_set }}
     steps:
       - name: Resolve latest component commits
         id: resolve
@@ -199,8 +207,21 @@ jobs:
           echo "Resolved:"
           env | grep -E '^(nomount_commit|kernelsu_commit|kernelsu_branch|root_commit|susfs_commit_|kernel_patches_commit|anykernel3_commit|droidspaces_commit)' | sort
 
+      - name: Compose requested feature set
+        id: features
+        shell: bash
+        run: |
+          set -euo pipefail
+          FEATURES=""
+          [ "${{ inputs.use_susfs }}" = "true" ] && FEATURES="${FEATURES}SUSFS+"
+          [ "${{ inputs.use_nomount }}" = "true" ] && FEATURES="${FEATURES}NoMount+"
+          [ "${{ inputs.use_bbg }}" = "true" ] && FEATURES="${FEATURES}BBG+"
+          [ "${{ inputs.use_net }}" = "true" ] && FEATURES="${FEATURES}NET+"
+          [ "${{ inputs.use_ds }}" = "true" ] && FEATURES="${FEATURES}DS+"
+          echo "feature_set=${FEATURES%+}" >> "$GITHUB_OUTPUT"
+
       - name: Clone shared source repos once
-        if: ${{ contains(inputs.feature_set, 'NoMount') || inputs.feature_set == 'All' }}
+        if: ${{ inputs.use_nomount }}
         shell: bash
         run: |
           set -euo pipefail
@@ -214,7 +235,7 @@ jobs:
           echo "sources_dir=$PWD/sources" >> "$GITHUB_ENV"
 
       - name: Upload sources artifact
-        if: ${{ contains(inputs.feature_set, 'NoMount') || inputs.feature_set == 'All' }}
+        if: ${{ inputs.use_nomount }}
         uses: actions/upload-artifact@v7
         with:
           name: sources
@@ -228,17 +249,17 @@ jobs:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v7
-        if: ${{ contains(inputs.feature_set, 'NoMount') || inputs.feature_set == 'All' }}
+        if: ${{ inputs.use_nomount }}
 
       - name: Build NoMount metamodule
         id: nomount-metamodule
-        if: ${{ contains(inputs.feature_set, 'NoMount') || inputs.feature_set == 'All' }}
+        if: ${{ inputs.use_nomount }}
         uses: ./.github/actions/nomount-metamodule
         with:
           commit: ${{ needs.resolve-sources.outputs.nomount_commit }}
 
       - name: Upload NoMount metamodule
-        if: ${{ contains(inputs.feature_set, 'NoMount') || inputs.feature_set == 'All' }}
+        if: ${{ inputs.use_nomount }}
         uses: actions/upload-artifact@v7
         with:
           name: NoMount-Metamodule
@@ -254,7 +275,7 @@ jobs:
     uses: ./.github/workflows/prepare.yml
     with:
       config_file: .github/config/android12-5.10.json
-      feature_set: ${{ inputs.feature_set || 'All' }}
+      feature_set: ${{ needs.resolve-sources.outputs.feature_set }}
       susfs_commit: ${{ needs.resolve-sources.outputs.susfs_commit_android12_5_10 }}
       nomount_commit: ${{ needs.resolve-sources.outputs.nomount_commit }}
       kernel_patches_commit: ${{ needs.resolve-sources.outputs.kernel_patches_commit }}
@@ -262,6 +283,7 @@ jobs:
       root_commit: ${{ needs.resolve-sources.outputs.root_commit }}
       anykernel3_commit: ${{ needs.resolve-sources.outputs.anykernel3_commit }}
       droidspaces_commit: ${{ needs.resolve-sources.outputs.droidspaces_commit }}
+      brand_name: ${{ inputs.brand_name }}
     secrets: inherit
 
   build-android13-5-10:
@@ -272,7 +294,7 @@ jobs:
     uses: ./.github/workflows/prepare.yml
     with:
       config_file: .github/config/android13-5.10.json
-      feature_set: ${{ inputs.feature_set || 'All' }}
+      feature_set: ${{ needs.resolve-sources.outputs.feature_set }}
       susfs_commit: ${{ needs.resolve-sources.outputs.susfs_commit_android13_5_10 }}
       nomount_commit: ${{ needs.resolve-sources.outputs.nomount_commit }}
       kernel_patches_commit: ${{ needs.resolve-sources.outputs.kernel_patches_commit }}
@@ -280,6 +302,7 @@ jobs:
       root_commit: ${{ needs.resolve-sources.outputs.root_commit }}
       anykernel3_commit: ${{ needs.resolve-sources.outputs.anykernel3_commit }}
       droidspaces_commit: ${{ needs.resolve-sources.outputs.droidspaces_commit }}
+      brand_name: ${{ inputs.brand_name }}
     secrets: inherit
 
   build-android13-5-15:
@@ -290,7 +313,7 @@ jobs:
     uses: ./.github/workflows/prepare.yml
     with:
       config_file: .github/config/android13-5.15.json
-      feature_set: ${{ inputs.feature_set || 'All' }}
+      feature_set: ${{ needs.resolve-sources.outputs.feature_set }}
       susfs_commit: ${{ needs.resolve-sources.outputs.susfs_commit_android13_5_15 }}
       nomount_commit: ${{ needs.resolve-sources.outputs.nomount_commit }}
       kernel_patches_commit: ${{ needs.resolve-sources.outputs.kernel_patches_commit }}
@@ -298,6 +321,7 @@ jobs:
       root_commit: ${{ needs.resolve-sources.outputs.root_commit }}
       anykernel3_commit: ${{ needs.resolve-sources.outputs.anykernel3_commit }}
       droidspaces_commit: ${{ needs.resolve-sources.outputs.droidspaces_commit }}
+      brand_name: ${{ inputs.brand_name }}
     secrets: inherit
 
   build-android14-5-15:
@@ -308,7 +332,7 @@ jobs:
     uses: ./.github/workflows/prepare.yml
     with:
       config_file: .github/config/android14-5.15.json
-      feature_set: ${{ inputs.feature_set || 'All' }}
+      feature_set: ${{ needs.resolve-sources.outputs.feature_set }}
       susfs_commit: ${{ needs.resolve-sources.outputs.susfs_commit_android14_5_15 }}
       nomount_commit: ${{ needs.resolve-sources.outputs.nomount_commit }}
       kernel_patches_commit: ${{ needs.resolve-sources.outputs.kernel_patches_commit }}
@@ -316,6 +340,7 @@ jobs:
       root_commit: ${{ needs.resolve-sources.outputs.root_commit }}
       anykernel3_commit: ${{ needs.resolve-sources.outputs.anykernel3_commit }}
       droidspaces_commit: ${{ needs.resolve-sources.outputs.droidspaces_commit }}
+      brand_name: ${{ inputs.brand_name }}
     secrets: inherit
 
   build-android14-6-1:
@@ -326,7 +351,7 @@ jobs:
     uses: ./.github/workflows/prepare.yml
     with:
       config_file: .github/config/android14-6.1.json
-      feature_set: ${{ inputs.feature_set || 'All' }}
+      feature_set: ${{ needs.resolve-sources.outputs.feature_set }}
       susfs_commit: ${{ needs.resolve-sources.outputs.susfs_commit_android14_6_1 }}
       nomount_commit: ${{ needs.resolve-sources.outputs.nomount_commit }}
       kernel_patches_commit: ${{ needs.resolve-sources.outputs.kernel_patches_commit }}
@@ -334,6 +359,7 @@ jobs:
       root_commit: ${{ needs.resolve-sources.outputs.root_commit }}
       anykernel3_commit: ${{ needs.resolve-sources.outputs.anykernel3_commit }}
       droidspaces_commit: ${{ needs.resolve-sources.outputs.droidspaces_commit }}
+      brand_name: ${{ inputs.brand_name }}
     secrets: inherit
 
   build-android15-6-6:
@@ -344,7 +370,7 @@ jobs:
     uses: ./.github/workflows/prepare.yml
     with:
       config_file: .github/config/android15-6.6.json
-      feature_set: ${{ inputs.feature_set || 'All' }}
+      feature_set: ${{ needs.resolve-sources.outputs.feature_set }}
       susfs_commit: ${{ needs.resolve-sources.outputs.susfs_commit_android15_6_6 }}
       nomount_commit: ${{ needs.resolve-sources.outputs.nomount_commit }}
       kernel_patches_commit: ${{ needs.resolve-sources.outputs.kernel_patches_commit }}
@@ -352,6 +378,7 @@ jobs:
       root_commit: ${{ needs.resolve-sources.outputs.root_commit }}
       anykernel3_commit: ${{ needs.resolve-sources.outputs.anykernel3_commit }}
       droidspaces_commit: ${{ needs.resolve-sources.outputs.droidspaces_commit }}
+      brand_name: ${{ inputs.brand_name }}
     secrets: inherit
 
   build-android16-6-12:
@@ -362,7 +389,7 @@ jobs:
     uses: ./.github/workflows/prepare.yml
     with:
       config_file: .github/config/android16-6.12.json
-      feature_set: ${{ inputs.feature_set || 'All' }}
+      feature_set: ${{ needs.resolve-sources.outputs.feature_set }}
       susfs_commit: ${{ needs.resolve-sources.outputs.susfs_commit_android16_6_12 }}
       nomount_commit: ${{ needs.resolve-sources.outputs.nomount_commit }}
       kernel_patches_commit: ${{ needs.resolve-sources.outputs.kernel_patches_commit }}
@@ -370,6 +397,7 @@ jobs:
       root_commit: ${{ needs.resolve-sources.outputs.root_commit }}
       anykernel3_commit: ${{ needs.resolve-sources.outputs.anykernel3_commit }}
       droidspaces_commit: ${{ needs.resolve-sources.outputs.droidspaces_commit }}
+      brand_name: ${{ inputs.brand_name }}
     secrets: inherit
 
   rej:
@@ -487,8 +515,9 @@ jobs:
         {
           echo "# 📋 Build Summary — $(date -u '+%Y-%m-%d %H:%M UTC')"
           echo
-          echo "**Feature Set:** ${{ inputs.feature_set }}"
+          echo "**Feature Set:** ${{ needs.resolve-sources.outputs.feature_set }}"
           echo "**Root Flavor:** ${{ inputs.root_flavor || 'none' }}"
+          echo "**Brand:** ${{ inputs.brand_name || 'Wild' }}"
           echo
           
           # Count successes and failures

+ 6 - 0
.github/workflows/prepare.yml

@@ -51,6 +51,11 @@ on:
         required: false
         type: string
         default: ""
+      brand_name:
+        description: "Kernel branding text appended to the version string"
+        required: false
+        type: string
+        default: Wild
       preserve_abi:
         description: "Keep ABI/KMI protection files intact and verify their hashes"
         required: false
@@ -173,6 +178,7 @@ jobs:
       kernel_patches_commit: ${{ inputs.kernel_patches_commit }}
       anykernel3_commit: ${{ inputs.anykernel3_commit }}
       droidspaces_commit: ${{ inputs.droidspaces_commit }}
+      brand_name: ${{ inputs.brand_name }}
       preserve_abi: ${{ inputs.preserve_abi }}
       build_bypass: ${{ inputs.build_bypass }}
     secrets: inherit