Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/functional-test-cloud.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,7 @@ jobs:
changes:
name: Changes
needs: setup
if: always() && needs.setup.result == 'success'
uses: ./.github/workflows/__changes.yml
with:
ref: ${{ needs.setup.outputs.CHECKOUT_REF }}
Expand All @@ -232,7 +233,7 @@ jobs:
name: Build Radius for test
needs: [setup, changes]
# Skip if only docs/markdown changed
if: needs.changes.outputs.only_changed != 'true'
if: always() && needs.changes.outputs.only_changed != 'true'
runs-on: ubuntu-24.04
Comment on lines 233 to 237
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

build now uses if: always() && needs.changes.outputs.only_changed != 'true', which can evaluate to true when setup/changes were skipped or failed (e.g., scheduled runs on forks where setup is intentionally skipped). That would allow the build job to run without valid needs.setup.outputs.* values and bypass the schedule fork guard. Update the condition to also require needs.setup.result == 'success' and needs.changes.result == 'success' (and then apply the docs-only check).

Copilot uses AI. Check for mistakes.
timeout-minutes: 15
permissions:
Expand Down Expand Up @@ -479,7 +480,7 @@ jobs:
skip-tests:
name: Skip Functional Tests
needs: [setup, changes]
if: needs.changes.outputs.only_changed == 'true'
if: always() && needs.changes.outputs.only_changed == 'true'
runs-on: ubuntu-24.04
timeout-minutes: 5
permissions:
Expand Down Expand Up @@ -508,6 +509,7 @@ jobs:
tests:
name: Run ${{ matrix.name }} functional tests
needs: [setup, build]
if: always() && needs.setup.result == 'success' && needs.build.result == 'success'
# Approval gate (via environment protection) ensures external contributors are approved before reaching here
strategy:
fail-fast: true
Expand Down
Loading