refactor(ci): simplify sonar/deploy if conditions

Compute run_sonar and run_deploy flags once in build and use those outputs in later job conditions to keep logic easier to read.

Made-with: Cursor
This commit is contained in:
WDI-Ideas
2026-04-08 15:46:01 +05:30
parent 2fdcadcc45
commit 308671e69c

View File

@@ -74,10 +74,27 @@ jobs:
runs-on: ubuntu-latest
outputs:
cs: ${{ steps.capture.outputs.cs }}
run_sonar: ${{ steps.flags.outputs.run_sonar }}
run_deploy: ${{ steps.flags.outputs.run_deploy }}
steps:
- id: capture
name: Capture ci_steps
run: echo "cs=${{ inputs.ci_steps }}" >> "$GITHUB_OUTPUT"
- id: flags
name: Compute stage flags
shell: bash
run: |
cs=",${{ inputs.ci_steps }},"
if [[ "$cs" == *",sonar,"* ]]; then
echo "run_sonar=true" >> "$GITHUB_OUTPUT"
else
echo "run_sonar=false" >> "$GITHUB_OUTPUT"
fi
if [[ "$cs" == *",deploy,"* ]]; then
echo "run_deploy=true" >> "$GITHUB_OUTPUT"
else
echo "run_deploy=false" >> "$GITHUB_OUTPUT"
fi
- name: Checkout Code
uses: actions/checkout@v3
@@ -102,7 +119,7 @@ jobs:
fi
sonar:
if: ${{ contains(format(',{0},', needs.build.outputs.cs), ',sonar,') }}
if: ${{ needs.build.outputs.run_sonar == 'true' }}
needs: [build]
uses: Rajendra.Reddy/wdipl-actions/.gitea/workflows/quality.yml@d604440af823c664b2c828a3d6a2cc5d23b79141
with:
@@ -113,7 +130,7 @@ jobs:
SONARQUBE_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}
deploy:
if: ${{ always() && contains(format(',{0},', needs.build.outputs.cs), ',deploy,') && needs.build.result == 'success' && (needs.sonar.result == 'success' || needs.sonar.result == 'skipped') }}
if: ${{ always() && needs.build.outputs.run_deploy == 'true' && needs.build.result == 'success' && needs.sonar.result != 'failure' }}
needs: [build, sonar]
uses: Rajendra.Reddy/wdipl-actions/.gitea/workflows/deploy.yml@main
with: