Просмотр исходного кода

build: scan for .rej files and upload rejects with originals as artifact

TheWildJames 11 месяцев назад
Родитель
Сommit
264afd6438
1 измененных файлов с 41 добавлено и 0 удалено
  1. 41 0
      .github/workflows/build.yml

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

@@ -230,6 +230,40 @@ jobs:
           cp ../../kernel_patches/wild/hooks/scope_min_manual_hooks_v1.4.patch ./
           patch -p1 --forward -F 3 < scope_min_manual_hooks_v1.4.patch
 
+      - name: Scan and collect patch rejects
+        if: ${{ always() }}
+        run: |
+          set -e
+          CONFIG_DIR="$CONFIG"
+          REJECTS_DIR="$GITHUB_WORKSPACE/patch-rejects"
+          mkdir -p "$REJECTS_DIR"
+          # Find all .rej files under the configuration directory
+          mapfile -t REJS < <(find "$CONFIG_DIR" -type f -name '*.rej')
+          REJ_COUNT=${#REJS[@]}
+          echo "Found $REJ_COUNT .rej files under $CONFIG_DIR"
+          echo "REJ_COUNT=$REJ_COUNT" >> $GITHUB_ENV
+          if [ "$REJ_COUNT" -gt 0 ]; then
+            for REJ in "${REJS[@]}"; do
+              # Relative path from $CONFIG
+              REL="${REJ#"$CONFIG_DIR"/}"
+              DEST="$REJECTS_DIR/$REL"
+              mkdir -p "$(dirname "$DEST")"
+              cp "$REJ" "$DEST"
+              # Copy the associated original file alongside the .rej
+              ORIG="${REJ%.rej}"
+              if [ -f "$ORIG" ]; then
+                ORIG_DEST="$REJECTS_DIR/${REL%.rej}"
+                mkdir -p "$(dirname "$ORIG_DEST")"
+                cp "$ORIG" "$ORIG_DEST"
+              fi
+              echo "$REL" >> "$REJECTS_DIR/index.txt"
+            done
+            {
+              echo "Patch rejects collected:"
+              cat "$REJECTS_DIR/index.txt"
+            } >> "$GITHUB_STEP_SUMMARY" || true
+          fi
+
       - name: Add BBG
         run: |
           cd "$CONFIG"
@@ -509,6 +543,13 @@ jobs:
           name: WKSU-${{ env.KSUVER }}-${{ inputs.android_version }}-${{ inputs.kernel_version }}.${{ env.ACTUAL_SUBLEVEL || inputs.sub_level }}-${{ inputs.os_patch_level }}-${{ matrix.apply_module_check_bypass && 'Module_Check_Bypass' || 'Normal' }}-AnyKernel3
           path: "*.zip"
 
+      - name: Upload Patch Rejects (if any)
+        if: ${{ always() && env.REJ_COUNT != '0' }}
+        uses: actions/upload-artifact@v4
+        with:
+          name: Patch-Rejects-${{ inputs.android_version }}-${{ inputs.kernel_version }}.${{ env.ACTUAL_SUBLEVEL || inputs.sub_level }}-${{ inputs.os_patch_level }}
+          path: patch-rejects
+
       - name: Upload Boot Image (Uncompressed)
         uses: actions/upload-artifact@v4
         with: