Explorar o código

Add test_release_notes input to control workflow execution and update job conditions

TheWildJames hai 3 meses
pai
achega
bffc3b897d
Modificáronse 1 ficheiros con 33 adicións e 43 borrados
  1. 33 43
      .github/workflows/main.yml

+ 33 - 43
.github/workflows/main.yml

@@ -57,10 +57,14 @@ on:
         description: "Use repo for downloading kernel source"
         description: "Use repo for downloading kernel source"
         type: boolean
         type: boolean
         default: true
         default: true
+      test_release_notes:
+        description: "Test release notes only"
+        type: boolean
+        default: false
 
 
 jobs:
 jobs:
   build-android12-5-10:
   build-android12-5-10:
-    if: ${{ inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android12-5.10' }}
+    if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android12-5.10') }}
     uses: ./.github/workflows/prepare.yml
     uses: ./.github/workflows/prepare.yml
     with:
     with:
       config_file: .github/config/android12-5.10.json
       config_file: .github/config/android12-5.10.json
@@ -70,7 +74,7 @@ jobs:
     secrets: inherit
     secrets: inherit
 
 
   build-android13-5-10:
   build-android13-5-10:
-    if: ${{ inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android13-5.10' }}
+    if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android13-5.10') }}
     uses: ./.github/workflows/prepare.yml
     uses: ./.github/workflows/prepare.yml
     with:
     with:
       config_file: .github/config/android13-5.10.json
       config_file: .github/config/android13-5.10.json
@@ -80,7 +84,7 @@ jobs:
     secrets: inherit
     secrets: inherit
 
 
   build-android13-5-15:
   build-android13-5-15:
-    if: ${{ inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android13-5.15' }}
+    if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android13-5.15') }}
     uses: ./.github/workflows/prepare.yml
     uses: ./.github/workflows/prepare.yml
     with:
     with:
       config_file: .github/config/android13-5.15.json
       config_file: .github/config/android13-5.15.json
@@ -90,7 +94,7 @@ jobs:
     secrets: inherit
     secrets: inherit
 
 
   build-android14-5-15:
   build-android14-5-15:
-    if: ${{ inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android14-5.15' }}
+    if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android14-5.15') }}
     uses: ./.github/workflows/prepare.yml
     uses: ./.github/workflows/prepare.yml
     with:
     with:
       config_file: .github/config/android14-5.15.json
       config_file: .github/config/android14-5.15.json
@@ -100,7 +104,7 @@ jobs:
     secrets: inherit
     secrets: inherit
 
 
   build-android14-6-1:
   build-android14-6-1:
-    if: ${{ inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android14-6.1' }}
+    if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android14-6.1') }}
     uses: ./.github/workflows/prepare.yml
     uses: ./.github/workflows/prepare.yml
     with:
     with:
       config_file: .github/config/android14-6.1.json
       config_file: .github/config/android14-6.1.json
@@ -110,7 +114,7 @@ jobs:
     secrets: inherit
     secrets: inherit
 
 
   build-android15-6-6:
   build-android15-6-6:
-    if: ${{ inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android15-6.6' }}
+    if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android15-6.6') }}
     uses: ./.github/workflows/prepare.yml
     uses: ./.github/workflows/prepare.yml
     with:
     with:
       config_file: .github/config/android15-6.6.json
       config_file: .github/config/android15-6.6.json
@@ -120,7 +124,7 @@ jobs:
     secrets: inherit
     secrets: inherit
 
 
   build-android16-6-12:
   build-android16-6-12:
-    if: ${{ inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android16-6.12' }}
+    if: ${{ !inputs.test_release_notes && (inputs.kernel_build_version == 'All' || inputs.kernel_build_version == 'android16-6.12') }}
     uses: ./.github/workflows/prepare.yml
     uses: ./.github/workflows/prepare.yml
     with:
     with:
       config_file: .github/config/android16-6.12.json
       config_file: .github/config/android16-6.12.json
@@ -130,7 +134,7 @@ jobs:
     secrets: inherit
     secrets: inherit
 
 
   rej:
   rej:
-    if: always()
+    if: ${{ !inputs.test_release_notes && always() }}
     runs-on: ubuntu-latest
     runs-on: ubuntu-latest
     permissions:
     permissions:
       actions: read
       actions: read
@@ -198,44 +202,29 @@ jobs:
 
 
   release-preview:
   release-preview:
     runs-on: ubuntu-latest
     runs-on: ubuntu-latest
-    if: ${{ always() && github.event_name == 'workflow_dispatch' }}
+    if: ${{ github.event_name == 'workflow_dispatch' && inputs.test_release_notes == true }}
     permissions:
     permissions:
       contents: read
       contents: read
-    needs:
-    - build-android12-5-10
-    - build-android13-5-10
-    - build-android13-5-15
-    - build-android14-5-15
-    - build-android14-6-1
-    - build-android15-6-6
-    - build-android16-6-12
 
 
     env:
     env:
       GH_TOKEN: ${{ github.token }}
       GH_TOKEN: ${{ github.token }}
-      RELEASE_CONFIG: .github/config/release.json
+      RELEASE_NOTES: .github/config/RELEASE_NOTES.md
+      COMMITS_JSON: .github/config/commits.json
 
 
     steps:
     steps:
     - name: Checkout code
     - name: Checkout code
       uses: actions/checkout@v5
       uses: actions/checkout@v5
 
 
-    - name: Load Release Config
-      id: release_meta
-      run: |
-        set -euo pipefail
-
-        release_title=$(python3 -c 'import json,sys;from pathlib import Path;data=json.loads(Path(sys.argv[1]).read_text());print(data["release"]["title"])' "$RELEASE_CONFIG")
-        echo "release_title=$release_title" >> "$GITHUB_OUTPUT"
-
     - name: Extract KernelSU Version Info
     - name: Extract KernelSU Version Info
       id: ksu_version
       id: ksu_version
       env:
       env:
-        RELEASE_CONFIG_PATH: ${{ env.RELEASE_CONFIG }}
+        COMMITS_JSON_PATH: ${{ env.COMMITS_JSON }}
       run: |
       run: |
         set -euo pipefail
         set -euo pipefail
 
 
-        # Extract KernelSU commit and branch from release config
-        KSUN_COMMIT=$(python3 -c 'import json,sys;from pathlib import Path;data=json.loads(Path(sys.argv[1]).read_text());print(data["kernelsu"]["dev"])' "$RELEASE_CONFIG_PATH")
-        KSUN_BRANCH=$(python3 -c 'import json,sys;from pathlib import Path;data=json.loads(Path(sys.argv[1]).read_text());print("dev")' "$RELEASE_CONFIG_PATH")
+        # Extract KernelSU commit and branch from commits config
+        KSUN_COMMIT=$(jq -er '.kernelsu.dev' "$COMMITS_JSON_PATH")
+        KSUN_BRANCH="dev"
 
 
         # Clone KernelSU-Next on the specified branch
         # Clone KernelSU-Next on the specified branch
         echo "Cloning KernelSU-Next from branch: $KSUN_BRANCH"
         echo "Cloning KernelSU-Next from branch: $KSUN_BRANCH"
@@ -280,10 +269,10 @@ jobs:
       run: |
       run: |
         set -e
         set -e
 
 
-        RELEASE_CONFIG_PATH="$RELEASE_CONFIG"
+        RELEASE_NOTES_PATH="$RELEASE_NOTES"
         : > release_body.md
         : > release_body.md
 
 
-        python3 .github/scripts/render_release_body.py "$RELEASE_CONFIG_PATH" > release_body.md
+        python3 .github/scripts/render_release_body.py "$RELEASE_NOTES_PATH" > release_body.md
 
 
     - name: Publish release notes preview
     - name: Publish release notes preview
       run: |
       run: |
@@ -295,7 +284,7 @@ jobs:
 
 
   release:
   release:
     runs-on: ubuntu-latest
     runs-on: ubuntu-latest
-    if: ${{ github.event_name == 'workflow_dispatch' && (inputs.release_type == 'Pre-Release' || inputs.release_type == 'Release') }}
+    if: ${{ github.event_name == 'workflow_dispatch' && !inputs.test_release_notes && (inputs.release_type == 'Pre-Release' || inputs.release_type == 'Release') }}
     permissions:
     permissions:
       contents: write
       contents: write
     needs:
     needs:
@@ -309,7 +298,8 @@ jobs:
 
 
     env:
     env:
       GH_TOKEN: ${{ github.token }}
       GH_TOKEN: ${{ github.token }}
-      RELEASE_CONFIG: .github/config/release.json
+      RELEASE_NOTES: .github/config/RELEASE_NOTES.md
+      COMMITS_JSON: .github/config/commits.json
     outputs:
     outputs:
       new_tag: ${{ steps.tag.outputs.new_tag }}
       new_tag: ${{ steps.tag.outputs.new_tag }}
     steps:
     steps:
@@ -366,7 +356,7 @@ jobs:
 
 
     - name: Generate New Tag
     - name: Generate New Tag
       id: tag
       id: tag
-      if: inputs.release_type != 'Actions'
+      if: inputs.release_type != 'Action'
       run: |
       run: |
         LATEST_TAG=$(gh api repos/${{ github.repository }}/tags --jq '.[0].name' 2>/dev/null || echo "v0.0.0")
         LATEST_TAG=$(gh api repos/${{ github.repository }}/tags --jq '.[0].name' 2>/dev/null || echo "v0.0.0")
         if [[ -z "$LATEST_TAG" || "$LATEST_TAG" == "null" ]]; then
         if [[ -z "$LATEST_TAG" || "$LATEST_TAG" == "null" ]]; then
@@ -387,24 +377,24 @@ jobs:
         echo "NEW_TAG=${NEW_TAG}" >> $GITHUB_ENV
         echo "NEW_TAG=${NEW_TAG}" >> $GITHUB_ENV
         echo "new_tag=$NEW_TAG" >> $GITHUB_OUTPUT
         echo "new_tag=$NEW_TAG" >> $GITHUB_OUTPUT
 
 
-    - name: Load Release Config
+    - name: Set Release Title
       id: release_meta
       id: release_meta
       run: |
       run: |
         set -euo pipefail
         set -euo pipefail
 
 
-        release_title=$(python3 -c 'import json,sys;from pathlib import Path;data=json.loads(Path(sys.argv[1]).read_text());print(data["release"]["title"])' "$RELEASE_CONFIG")
+        release_title="GKI Kernel Build ${NEW_TAG}"
         echo "release_title=$release_title" >> "$GITHUB_OUTPUT"
         echo "release_title=$release_title" >> "$GITHUB_OUTPUT"
 
 
     - name: Extract KernelSU Version Info
     - name: Extract KernelSU Version Info
       id: ksu_version
       id: ksu_version
       env:
       env:
-        RELEASE_CONFIG_PATH: ${{ env.RELEASE_CONFIG }}
+        COMMITS_JSON_PATH: ${{ env.COMMITS_JSON }}
       run: |
       run: |
         set -euo pipefail
         set -euo pipefail
 
 
-        # Extract KernelSU commit and branch from release config
-        KSUN_COMMIT=$(python3 -c 'import json,sys;from pathlib import Path;data=json.loads(Path(sys.argv[1]).read_text());print(data["kernelsu"]["dev"])' "$RELEASE_CONFIG_PATH")
-        KSUN_BRANCH=$(python3 -c 'print("dev")')
+        # Extract KernelSU commit and branch from commits config
+        KSUN_COMMIT=$(jq -er '.kernelsu.dev' "$COMMITS_JSON_PATH")
+        KSUN_BRANCH="dev"
 
 
         # Clone KernelSU-Next on the specified branch
         # Clone KernelSU-Next on the specified branch
         echo "Cloning KernelSU-Next from branch: $KSUN_BRANCH"
         echo "Cloning KernelSU-Next from branch: $KSUN_BRANCH"
@@ -449,10 +439,10 @@ jobs:
       run: |
       run: |
         set -e
         set -e
 
 
-        RELEASE_CONFIG_PATH="$RELEASE_CONFIG"
+        RELEASE_NOTES_PATH="$RELEASE_NOTES"
         : > release_body.md
         : > release_body.md
 
 
-        python3 .github/scripts/render_release_body.py "$RELEASE_CONFIG_PATH" > release_body.md
+        python3 .github/scripts/render_release_body.py "$RELEASE_NOTES_PATH" > release_body.md
 
 
     - name: Publish release notes preview
     - name: Publish release notes preview
       run: |
       run: |