From f0fc6b709595a37c65b661b4b57f5b052a2afd0f Mon Sep 17 00:00:00 2001 From: VeithMetro Date: Tue, 26 May 2026 12:25:46 +0200 Subject: [PATCH] Manually check which workflow is relevant to avoid bugs --- .github/workflows/JsonGenerator.yml | 31 +++++++--------- .github/workflows/LuaGenerator.yml | 33 +++++++---------- .github/workflows/PluginSkeletonGenerator.yml | 37 ++++++++----------- .github/workflows/ProxyStubGenerator.yml | 31 +++++++--------- 4 files changed, 57 insertions(+), 75 deletions(-) diff --git a/.github/workflows/JsonGenerator.yml b/.github/workflows/JsonGenerator.yml index a190db80..36737542 100644 --- a/.github/workflows/JsonGenerator.yml +++ b/.github/workflows/JsonGenerator.yml @@ -24,29 +24,26 @@ 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.check.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' + - 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] - 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@master ThunderInterfaces: diff --git a/.github/workflows/LuaGenerator.yml b/.github/workflows/LuaGenerator.yml index fda32190..bf82f9d3 100644 --- a/.github/workflows/LuaGenerator.yml +++ b/.github/workflows/LuaGenerator.yml @@ -28,31 +28,26 @@ 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.check.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' + - 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] - 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/PluginSkeletonGenerator.yml b/.github/workflows/PluginSkeletonGenerator.yml index 288a0321..348be60a 100644 --- a/.github/workflows/PluginSkeletonGenerator.yml +++ b/.github/workflows/PluginSkeletonGenerator.yml @@ -24,29 +24,26 @@ 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.check.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: - - 'PluginSkeletonGenerator/**' - - '.github/workflows/PluginSkeletonGenerator.yml' + - 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("PluginSkeletonGenerator/") or . == ".github/workflows/PluginSkeletonGenerator.yml")) | length > 0') + echo "relevant=$relevant" >> "$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@master ThunderInterfaces: @@ -55,11 +52,7 @@ jobs: prepare: needs: [changes] - if: | - always() && ( - needs.changes.result == 'skipped' || - needs.changes.outputs.relevant == 'true' - ) + if: needs.changes.outputs.relevant == 'true' runs-on: ubuntu-latest outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} diff --git a/.github/workflows/ProxyStubGenerator.yml b/.github/workflows/ProxyStubGenerator.yml index 797d2321..a0d07b3e 100644 --- a/.github/workflows/ProxyStubGenerator.yml +++ b/.github/workflows/ProxyStubGenerator.yml @@ -24,29 +24,26 @@ 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.check.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' + - 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] - 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@master ThunderInterfaces: