Skip to content

Fix skipped cloud functional tests on schedule#11208

Open
willdavsmith wants to merge 5 commits intoradius-project:mainfrom
willdavsmith:0209-cloud-ft-fix
Open

Fix skipped cloud functional tests on schedule#11208
willdavsmith wants to merge 5 commits intoradius-project:mainfrom
willdavsmith:0209-cloud-ft-fix

Conversation

@willdavsmith
Copy link
Contributor

@willdavsmith willdavsmith commented Feb 9, 2026

Description

  • Fix functional-test-cloud.yaml skipping on schedule trigger.

Cloud functional tests are skipping steps and returning Success incorrectly: https://github.com/radius-project/radius/actions/workflows/functional-test-cloud.yaml?query=event%3Aschedule

If any job in the needs: dependency chain of a job is skipped, it will also be skipped unless you provide it an explicit if: clause (source: https://docs.github.com/en/enterprise-cloud@latest/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idneeds)

In this case, approval-gate was being skipped on schedule triggers, which caused the cloud functional tests to skip execution and report early success.

Verification:

Example: running from main skips tests:
https://github.com/radius-project/radius/actions/runs/21845972237

Changes cause steps to not be skipped:
https://github.com/radius-project/radius/actions/runs/21846478986

Type of change

  • This pull request is a minor refactor, code cleanup, test improvement, or other maintenance task and doesn't change the functionality of Radius (issue link optional).

Fixes: N/A

Contributor checklist

Please verify that the PR meets the following requirements, where applicable:

  • An overview of proposed schema changes is included in a linked GitHub issue.
    • Yes
    • Not applicable
  • A design document PR is created in the design-notes repository, if new APIs are being introduced.
    • Yes
    • Not applicable
  • The design document has been reviewed and approved by Radius maintainers/approvers.
    • Yes
    • Not applicable
  • A PR for the samples repository is created, if existing samples are affected by the changes in this PR.
    • Yes
    • Not applicable
  • A PR for the documentation repository is created, if the changes in this PR affect the documentation or any user facing updates are made.
    • Yes
    • Not applicable
  • A PR for the recipes repository is created, if existing recipes are affected by the changes in this PR.
    • Yes
    • Not applicable

Signed-off-by: willdavsmith <willdavsmith@gmail.com>
@willdavsmith willdavsmith requested review from a team as code owners February 9, 2026 23:56
@willdavsmith willdavsmith temporarily deployed to external-contributor-approval February 9, 2026 23:56 — with GitHub Actions Inactive
@radius-functional-tests
Copy link

radius-functional-tests bot commented Feb 10, 2026

Radius functional test overview

🔍 Go to test action run

Click here to see the test run details
Name Value
Repository willdavsmith/radius
Commit ref ceff0fb
Unique ID func6bc6b3714f
Image tag pr-func6bc6b3714f
  • gotestsum 1.13.0
  • KinD: v0.29.0
  • Dapr: 1.14.4
  • Azure KeyVault CSI driver: 1.4.2
  • Azure Workload identity webhook: 1.3.0
  • Bicep recipe location ghcr.io/radius-project/dev/test/testrecipes/test-bicep-recipes/<name>:pr-func6bc6b3714f
  • Terraform recipe location http://tf-module-server.radius-test-tf-module-server.svc.cluster.local/<name>.zip (in cluster)
  • applications-rp test image location: ghcr.io/radius-project/dev/applications-rp:pr-func6bc6b3714f
  • dynamic-rp test image location: ghcr.io/radius-project/dev/dynamic-rp:pr-func6bc6b3714f
  • controller test image location: ghcr.io/radius-project/dev/controller:pr-func6bc6b3714f
  • ucp test image location: ghcr.io/radius-project/dev/ucpd:pr-func6bc6b3714f
  • deployment-engine test image location: ghcr.io/radius-project/deployment-engine:latest

Test Status

⌛ Building Radius and pushing container images for functional tests...
✅ Container images build succeeded
⌛ Publishing Bicep Recipes for functional tests...
✅ Recipe publishing succeeded
⌛ Starting ucp-cloud functional tests...
⌛ Starting corerp-cloud functional tests...
✅ ucp-cloud functional tests succeeded
✅ corerp-cloud functional tests succeeded

Signed-off-by: willdavsmith <willdavsmith@gmail.com>
@willdavsmith willdavsmith requested a deployment to external-contributor-approval February 10, 2026 00:17 — with GitHub Actions Waiting
Copy link
Member

@brooke-hamilton brooke-hamilton left a comment

Choose a reason for hiding this comment

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

The functional test failure on this PR is due to the test not authenticating to Azure from the branch.

Copy link
Contributor

@sylvainsf sylvainsf left a comment

Choose a reason for hiding this comment

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

Thanks for catching this and fixing!

Copilot AI review requested due to automatic review settings February 13, 2026 03:22
@brooke-hamilton brooke-hamilton requested a deployment to external-contributor-approval February 13, 2026 03:22 — with GitHub Actions Waiting
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Fixes the scheduled execution path of the cloud functional test workflow by adding explicit job-level if: guards so downstream jobs don’t get auto-skipped when an upstream needs: job is skipped (notably approval-gate on schedule).

Changes:

  • Add explicit if: always() gating to the changes, build, and skip-tests jobs to prevent “skipped needs => skipped job” cascading.
  • Add explicit success-result gating for tests (and changes) so tests only run when prerequisites succeeded.

Comment on lines 233 to 237
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
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.
@willdavsmith willdavsmith requested a deployment to external-contributor-approval February 17, 2026 21:46 — with GitHub Actions Waiting
@willdavsmith willdavsmith requested a deployment to external-contributor-approval February 19, 2026 17:20 — with GitHub Actions Waiting
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

Comments