From 964dc2bd7277039f228e713484d63733a56adec0 Mon Sep 17 00:00:00 2001 From: VeithMetro Date: Tue, 26 May 2026 10:13:06 +0200 Subject: [PATCH 1/8] Only the relevant workflows should run after commits on a PR branch --- .github/workflows/JsonGenerator.yml | 23 ++++++++++++++++++++++ .github/workflows/LuaGenerator.yml | 25 ++++++++++++++++++++++++ .github/workflows/ProxyStubGenerator.yml | 23 ++++++++++++++++++++++ 3 files changed, 71 insertions(+) diff --git a/.github/workflows/JsonGenerator.yml b/.github/workflows/JsonGenerator.yml index e73e3e23..9a3cb397 100644 --- a/.github/workflows/JsonGenerator.yml +++ b/.github/workflows/JsonGenerator.yml @@ -28,7 +28,30 @@ concurrency: cancel-in-progress: false jobs: + changes: + if: github.event_name == 'pull_request' && github.event.action == 'synchronize' + runs-on: ubuntu-latest + outputs: + relevant: ${{ steps.filter.outputs.relevant }} + steps: + - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 + id: filter + with: + token: ${{ github.token }} + base: ${{ github.event.before }} + ref: ${{ github.event.after }} + filters: | + relevant: + - 'JsonGenerator/**' + - '.github/workflows/JsonGenerator.yml' + Thunder: + needs: [changes] + if: | + always() && ( + needs.changes.result == 'skipped' || + needs.changes.outputs.relevant == 'true' + ) uses: rdkcentral/Thunder/.github/workflows/Linux build template.yml@R4_4 with: thundertools_ref: ${{ inputs.tag_to_seed != '' && inputs.tag_to_seed || 'R4_4' }} diff --git a/.github/workflows/LuaGenerator.yml b/.github/workflows/LuaGenerator.yml index a74d0df6..1d6a300e 100644 --- a/.github/workflows/LuaGenerator.yml +++ b/.github/workflows/LuaGenerator.yml @@ -32,7 +32,32 @@ concurrency: cancel-in-progress: false jobs: + changes: + if: github.event_name == 'pull_request' && github.event.action == 'synchronize' + runs-on: ubuntu-latest + outputs: + relevant: ${{ steps.filter.outputs.relevant }} + steps: + - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 + id: filter + with: + token: ${{ github.token }} + base: ${{ github.event.before }} + ref: ${{ github.event.after }} + filters: | + relevant: + - 'LuaGenerator/**' + - 'ProxyStubGenerator/**' + - '.github/workflows/LuaGenerator.yml' + - '.github/workflows/ProxyStubGenerator.yml' + generate_lua: + needs: [changes] + if: | + always() && ( + needs.changes.result == 'skipped' || + needs.changes.outputs.relevant == 'true' + ) runs-on: ubuntu-latest steps: - name: Checkout ThunderTools diff --git a/.github/workflows/ProxyStubGenerator.yml b/.github/workflows/ProxyStubGenerator.yml index f1e9023d..f0377b12 100644 --- a/.github/workflows/ProxyStubGenerator.yml +++ b/.github/workflows/ProxyStubGenerator.yml @@ -28,7 +28,30 @@ concurrency: cancel-in-progress: false jobs: + changes: + if: github.event_name == 'pull_request' && github.event.action == 'synchronize' + runs-on: ubuntu-latest + outputs: + relevant: ${{ steps.filter.outputs.relevant }} + steps: + - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 + id: filter + with: + token: ${{ github.token }} + base: ${{ github.event.before }} + ref: ${{ github.event.after }} + filters: | + relevant: + - 'ProxyStubGenerator/**' + - '.github/workflows/ProxyStubGenerator.yml' + Thunder: + needs: [changes] + if: | + always() && ( + needs.changes.result == 'skipped' || + needs.changes.outputs.relevant == 'true' + ) uses: rdkcentral/Thunder/.github/workflows/Linux build template.yml@R4_4 with: thundertools_ref: ${{ inputs.tag_to_seed != '' && inputs.tag_to_seed || 'R4_4' }} From 7e0fb61d418e870199d22727a0968d58be593f78 Mon Sep 17 00:00:00 2001 From: VeithMetro Date: Tue, 26 May 2026 10:28:20 +0200 Subject: [PATCH 2/8] Fix a bug where changes job was skipped on PR open event --- .github/workflows/JsonGenerator.yml | 13 ++++++------- .github/workflows/LuaGenerator.yml | 13 ++++++------- .github/workflows/ProxyStubGenerator.yml | 13 ++++++------- 3 files changed, 18 insertions(+), 21 deletions(-) diff --git a/.github/workflows/JsonGenerator.yml b/.github/workflows/JsonGenerator.yml index 9a3cb397..fedc4ee2 100644 --- a/.github/workflows/JsonGenerator.yml +++ b/.github/workflows/JsonGenerator.yml @@ -29,12 +29,12 @@ concurrency: jobs: changes: - if: github.event_name == 'pull_request' && github.event.action == 'synchronize' runs-on: ubuntu-latest outputs: - relevant: ${{ steps.filter.outputs.relevant }} + relevant: ${{ steps.filter.outputs.relevant || steps.default.outputs.relevant }} steps: - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 + if: github.event_name == 'pull_request' && github.event.action == 'synchronize' id: filter with: token: ${{ github.token }} @@ -44,14 +44,13 @@ jobs: relevant: - 'JsonGenerator/**' - '.github/workflows/JsonGenerator.yml' + - id: default + if: github.event_name != 'pull_request' || github.event.action != 'synchronize' + run: echo "relevant=true" >> "$GITHUB_OUTPUT" Thunder: needs: [changes] - if: | - always() && ( - needs.changes.result == 'skipped' || - needs.changes.outputs.relevant == 'true' - ) + if: needs.changes.outputs.relevant == 'true' uses: rdkcentral/Thunder/.github/workflows/Linux build template.yml@R4_4 with: thundertools_ref: ${{ inputs.tag_to_seed != '' && inputs.tag_to_seed || 'R4_4' }} diff --git a/.github/workflows/LuaGenerator.yml b/.github/workflows/LuaGenerator.yml index 1d6a300e..ae545200 100644 --- a/.github/workflows/LuaGenerator.yml +++ b/.github/workflows/LuaGenerator.yml @@ -33,12 +33,12 @@ concurrency: jobs: changes: - if: github.event_name == 'pull_request' && github.event.action == 'synchronize' runs-on: ubuntu-latest outputs: - relevant: ${{ steps.filter.outputs.relevant }} + relevant: ${{ steps.filter.outputs.relevant || steps.default.outputs.relevant }} steps: - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 + if: github.event_name == 'pull_request' && github.event.action == 'synchronize' id: filter with: token: ${{ github.token }} @@ -50,14 +50,13 @@ jobs: - 'ProxyStubGenerator/**' - '.github/workflows/LuaGenerator.yml' - '.github/workflows/ProxyStubGenerator.yml' + - id: default + if: github.event_name != 'pull_request' || github.event.action != 'synchronize' + run: echo "relevant=true" >> "$GITHUB_OUTPUT" generate_lua: needs: [changes] - if: | - always() && ( - needs.changes.result == 'skipped' || - needs.changes.outputs.relevant == 'true' - ) + if: needs.changes.outputs.relevant == 'true' runs-on: ubuntu-latest steps: - name: Checkout ThunderTools diff --git a/.github/workflows/ProxyStubGenerator.yml b/.github/workflows/ProxyStubGenerator.yml index f0377b12..8ee74cbb 100644 --- a/.github/workflows/ProxyStubGenerator.yml +++ b/.github/workflows/ProxyStubGenerator.yml @@ -29,12 +29,12 @@ concurrency: jobs: changes: - if: github.event_name == 'pull_request' && github.event.action == 'synchronize' runs-on: ubuntu-latest outputs: - relevant: ${{ steps.filter.outputs.relevant }} + relevant: ${{ steps.filter.outputs.relevant || steps.default.outputs.relevant }} steps: - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 + if: github.event_name == 'pull_request' && github.event.action == 'synchronize' id: filter with: token: ${{ github.token }} @@ -44,14 +44,13 @@ jobs: relevant: - 'ProxyStubGenerator/**' - '.github/workflows/ProxyStubGenerator.yml' + - id: default + if: github.event_name != 'pull_request' || github.event.action != 'synchronize' + run: echo "relevant=true" >> "$GITHUB_OUTPUT" Thunder: needs: [changes] - if: | - always() && ( - needs.changes.result == 'skipped' || - needs.changes.outputs.relevant == 'true' - ) + if: needs.changes.outputs.relevant == 'true' uses: rdkcentral/Thunder/.github/workflows/Linux build template.yml@R4_4 with: thundertools_ref: ${{ inputs.tag_to_seed != '' && inputs.tag_to_seed || 'R4_4' }} From e4164964d7133dbbe35aa1e74dc7a0911ed5ae29 Mon Sep 17 00:00:00 2001 From: VeithMetro Date: Tue, 26 May 2026 10:47:54 +0200 Subject: [PATCH 3/8] Trigger only the JsonGenerator workflow to test the feature --- .github/workflows/JsonGenerator.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/JsonGenerator.yml b/.github/workflows/JsonGenerator.yml index fedc4ee2..d4195272 100644 --- a/.github/workflows/JsonGenerator.yml +++ b/.github/workflows/JsonGenerator.yml @@ -1,4 +1,4 @@ -name: JsonGenerator Checks +name: JsonGenerator Checks # trigger only this workflow to test on: workflow_dispatch: From dfdf0bd281704fdf5744bf39e9ad7a2ae9113165 Mon Sep 17 00:00:00 2001 From: VeithMetro Date: Tue, 26 May 2026 11:17:06 +0200 Subject: [PATCH 4/8] Try to manually check a difference between the last commit and the current one --- .github/workflows/JsonGenerator.yml | 30 +++++++++++------------- .github/workflows/LuaGenerator.yml | 30 ++++++++++-------------- .github/workflows/ProxyStubGenerator.yml | 28 ++++++++++------------ 3 files changed, 40 insertions(+), 48 deletions(-) diff --git a/.github/workflows/JsonGenerator.yml b/.github/workflows/JsonGenerator.yml index d4195272..89b9aec2 100644 --- a/.github/workflows/JsonGenerator.yml +++ b/.github/workflows/JsonGenerator.yml @@ -1,4 +1,4 @@ -name: JsonGenerator Checks # trigger only this workflow to test +name: JsonGenerator Checks on: workflow_dispatch: @@ -31,22 +31,20 @@ jobs: changes: runs-on: ubuntu-latest outputs: - relevant: ${{ steps.filter.outputs.relevant || steps.default.outputs.relevant }} + relevant: ${{ steps.check.outputs.relevant }} steps: - - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 - if: github.event_name == 'pull_request' && github.event.action == 'synchronize' - id: filter - with: - token: ${{ github.token }} - base: ${{ github.event.before }} - ref: ${{ github.event.after }} - filters: | - relevant: - - 'JsonGenerator/**' - - '.github/workflows/JsonGenerator.yml' - - id: default - if: github.event_name != 'pull_request' || github.event.action != 'synchronize' - run: echo "relevant=true" >> "$GITHUB_OUTPUT" + - id: check + env: + GH_TOKEN: ${{ github.token }} + run: | + if [[ "${{ github.event_name }}" != "pull_request" || "${{ github.event.action }}" != "synchronize" ]]; then + echo "relevant=true" >> "$GITHUB_OUTPUT" + exit 0 + fi + relevant=$(gh api \ + "repos/${{ github.repository }}/compare/${{ github.event.before }}...${{ github.event.after }}" \ + --jq '[.files[].filename] | map(select(startswith("JsonGenerator/") or . == ".github/workflows/JsonGenerator.yml")) | length > 0') + echo "relevant=$relevant" >> "$GITHUB_OUTPUT" Thunder: needs: [changes] diff --git a/.github/workflows/LuaGenerator.yml b/.github/workflows/LuaGenerator.yml index ae545200..4e65a341 100644 --- a/.github/workflows/LuaGenerator.yml +++ b/.github/workflows/LuaGenerator.yml @@ -35,24 +35,20 @@ jobs: changes: runs-on: ubuntu-latest outputs: - relevant: ${{ steps.filter.outputs.relevant || steps.default.outputs.relevant }} + relevant: ${{ steps.check.outputs.relevant }} steps: - - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 - if: github.event_name == 'pull_request' && github.event.action == 'synchronize' - id: filter - with: - token: ${{ github.token }} - base: ${{ github.event.before }} - ref: ${{ github.event.after }} - filters: | - relevant: - - 'LuaGenerator/**' - - 'ProxyStubGenerator/**' - - '.github/workflows/LuaGenerator.yml' - - '.github/workflows/ProxyStubGenerator.yml' - - id: default - if: github.event_name != 'pull_request' || github.event.action != 'synchronize' - run: echo "relevant=true" >> "$GITHUB_OUTPUT" + - id: check + env: + GH_TOKEN: ${{ github.token }} + run: | + if [[ "${{ github.event_name }}" != "pull_request" || "${{ github.event.action }}" != "synchronize" ]]; then + echo "relevant=true" >> "$GITHUB_OUTPUT" + exit 0 + fi + relevant=$(gh api \ + "repos/${{ github.repository }}/compare/${{ github.event.before }}...${{ github.event.after }}" \ + --jq '[.files[].filename] | map(select(startswith("LuaGenerator/") or startswith("ProxyStubGenerator/") or . == ".github/workflows/LuaGenerator.yml" or . == ".github/workflows/ProxyStubGenerator.yml")) | length > 0') + echo "relevant=$relevant" >> "$GITHUB_OUTPUT" generate_lua: needs: [changes] diff --git a/.github/workflows/ProxyStubGenerator.yml b/.github/workflows/ProxyStubGenerator.yml index 8ee74cbb..fadac4ba 100644 --- a/.github/workflows/ProxyStubGenerator.yml +++ b/.github/workflows/ProxyStubGenerator.yml @@ -31,22 +31,20 @@ jobs: changes: runs-on: ubuntu-latest outputs: - relevant: ${{ steps.filter.outputs.relevant || steps.default.outputs.relevant }} + relevant: ${{ steps.check.outputs.relevant }} steps: - - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 - if: github.event_name == 'pull_request' && github.event.action == 'synchronize' - id: filter - with: - token: ${{ github.token }} - base: ${{ github.event.before }} - ref: ${{ github.event.after }} - filters: | - relevant: - - 'ProxyStubGenerator/**' - - '.github/workflows/ProxyStubGenerator.yml' - - id: default - if: github.event_name != 'pull_request' || github.event.action != 'synchronize' - run: echo "relevant=true" >> "$GITHUB_OUTPUT" + - id: check + env: + GH_TOKEN: ${{ github.token }} + run: | + if [[ "${{ github.event_name }}" != "pull_request" || "${{ github.event.action }}" != "synchronize" ]]; then + echo "relevant=true" >> "$GITHUB_OUTPUT" + exit 0 + fi + relevant=$(gh api \ + "repos/${{ github.repository }}/compare/${{ github.event.before }}...${{ github.event.after }}" \ + --jq '[.files[].filename] | map(select(startswith("ProxyStubGenerator/") or . == ".github/workflows/ProxyStubGenerator.yml")) | length > 0') + echo "relevant=$relevant" >> "$GITHUB_OUTPUT" Thunder: needs: [changes] From 7a02ed79d0f5b4546fe065ac80781ef1625a8f49 Mon Sep 17 00:00:00 2001 From: VeithMetro Date: Tue, 26 May 2026 11:30:04 +0200 Subject: [PATCH 5/8] Again try to trigger only the Json workflow --- .github/workflows/JsonGenerator.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/JsonGenerator.yml b/.github/workflows/JsonGenerator.yml index 89b9aec2..a7f6aa51 100644 --- a/.github/workflows/JsonGenerator.yml +++ b/.github/workflows/JsonGenerator.yml @@ -1,4 +1,4 @@ -name: JsonGenerator Checks +name: JsonGenerator Checks # test: try to trigger only this workflow on: workflow_dispatch: From 0856ac17c82aeef115cecb9e0b4ac56cd75f588d Mon Sep 17 00:00:00 2001 From: VeithMetro Date: Tue, 26 May 2026 11:54:40 +0200 Subject: [PATCH 6/8] Fix a broken default diff vs last commit on R4_4 --- .github/workflows/JsonGenerator.yml | 8 ++++---- .github/workflows/LuaGenerator.yml | 6 +++--- .github/workflows/ProxyStubGenerator.yml | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/JsonGenerator.yml b/.github/workflows/JsonGenerator.yml index a7f6aa51..7012aba5 100644 --- a/.github/workflows/JsonGenerator.yml +++ b/.github/workflows/JsonGenerator.yml @@ -1,4 +1,4 @@ -name: JsonGenerator Checks # test: try to trigger only this workflow +name: JsonGenerator Checks on: workflow_dispatch: @@ -222,8 +222,8 @@ jobs: BASELINE_ROOT="${PWD}/ghpages_baseline/${TOOL_NAME}/R4_4/tag_${DIFF_TAG}_raw" echo "Using tag baseline: $DIFF_TAG" else - BASELINE_ROOT="${PWD}/ghpages_baseline/${TOOL_NAME}/R4_4/tag_raw" - echo "Using default tag baseline" + BASELINE_ROOT="${PWD}/ghpages_baseline/${TOOL_NAME}/R4_4/latest_raw" + echo "Using latest R4_4 baseline" fi mkdir -p diffs "site/$RUN_DIR/diff" @@ -364,7 +364,7 @@ jobs: mkdir -p "site/R4_4/latest" cp -a "site/$RUN_DIR"/* "site/R4_4/latest/" - # ----- Update Raw Latest (for browsing only, not used for diffs) ----- + # ----- Update Raw Latest (used as default diff baseline) ----- rm -rf "site/R4_4/latest_raw" mkdir -p "site/R4_4/latest_raw" cp -r generated/* "site/R4_4/latest_raw/" diff --git a/.github/workflows/LuaGenerator.yml b/.github/workflows/LuaGenerator.yml index 4e65a341..b94ae7c3 100644 --- a/.github/workflows/LuaGenerator.yml +++ b/.github/workflows/LuaGenerator.yml @@ -184,8 +184,8 @@ jobs: BASELINE_ROOT="${PWD}/ghpages_baseline/${TOOL_NAME}/R4_4/tag_${DIFF_TAG}_raw" echo "Using tag baseline: $DIFF_TAG" else - BASELINE_ROOT="${PWD}/ghpages_baseline/${TOOL_NAME}/R4_4/tag_raw" - echo "Using default tag baseline" + BASELINE_ROOT="${PWD}/ghpages_baseline/${TOOL_NAME}/R4_4/latest_raw" + echo "Using latest R4_4 baseline" fi mkdir -p diffs "site/$RUN_DIR/diff" @@ -326,7 +326,7 @@ jobs: mkdir -p "site/R4_4/latest" cp -a "site/$RUN_DIR"/* "site/R4_4/latest/" - # Update Raw Latest (for browsing only, not used for diffs) + # ----- Update Raw Latest (used as default diff baseline) ----- rm -rf "site/R4_4/latest_raw" mkdir -p "site/R4_4/latest_raw" cp -r generated/* "site/R4_4/latest_raw/" diff --git a/.github/workflows/ProxyStubGenerator.yml b/.github/workflows/ProxyStubGenerator.yml index fadac4ba..481ddfdd 100644 --- a/.github/workflows/ProxyStubGenerator.yml +++ b/.github/workflows/ProxyStubGenerator.yml @@ -232,8 +232,8 @@ jobs: BASELINE_ROOT="${PWD}/ghpages_baseline/${TOOL_NAME}/R4_4/tag_${DIFF_TAG}_raw" echo "Using tag baseline: $DIFF_TAG" else - BASELINE_ROOT="${PWD}/ghpages_baseline/${TOOL_NAME}/R4_4/tag_raw" - echo "Using default tag baseline" + BASELINE_ROOT="${PWD}/ghpages_baseline/${TOOL_NAME}/R4_4/latest_raw" + echo "Using latest R4_4 baseline" fi mkdir -p diffs "site/$RUN_DIR/diff" @@ -381,7 +381,7 @@ jobs: mkdir -p "site/R4_4/latest" cp -a "site/$RUN_DIR"/* "site/R4_4/latest/" - # ----- Update Raw Latest (for browsing only, not used for diffs) ----- + # ----- Update Raw Latest (used as default diff baseline) ----- rm -rf "site/R4_4/latest_raw" mkdir -p "site/R4_4/latest_raw" cp -r generated/* "site/R4_4/latest_raw/" From 6a014f1a9d2b52f1aee97fb926301348e4f085a4 Mon Sep 17 00:00:00 2001 From: VeithMetro Date: Tue, 26 May 2026 12:07:18 +0200 Subject: [PATCH 7/8] Test the tag override --- .github/workflows/JsonGenerator.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/JsonGenerator.yml b/.github/workflows/JsonGenerator.yml index 7012aba5..4b8b6336 100644 --- a/.github/workflows/JsonGenerator.yml +++ b/.github/workflows/JsonGenerator.yml @@ -1,4 +1,4 @@ -name: JsonGenerator Checks +name: JsonGenerator Checks # test: trigger this workflow to see if the tag override works as expected on: workflow_dispatch: From beaafec75ac41c7aaef0b1eb4a7cc5d2abbb6936 Mon Sep 17 00:00:00 2001 From: VeithMetro Date: Tue, 26 May 2026 12:20:09 +0200 Subject: [PATCH 8/8] Clean up and remove test comments: --- .github/workflows/JsonGenerator.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/JsonGenerator.yml b/.github/workflows/JsonGenerator.yml index 4b8b6336..7012aba5 100644 --- a/.github/workflows/JsonGenerator.yml +++ b/.github/workflows/JsonGenerator.yml @@ -1,4 +1,4 @@ -name: JsonGenerator Checks # test: trigger this workflow to see if the tag override works as expected +name: JsonGenerator Checks on: workflow_dispatch: