Add custom recipe pack support and delete workflows to Repo Radius#12367
Add custom recipe pack support and delete workflows to Repo Radius#12367sk593 wants to merge 3 commits into
Conversation
Deploy any *recipe-pack*.bicep files in the app's .radius/ folder, then list all recipe packs and update the environment to reference all of them via rad env update --recipe-packs. Provider-agnostic logic lives in a new shared apply-custom-recipe-packs composite action wired into both the Azure and AWS workflows. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
This PR requires exactly 1 of the following labels: pr:standard, pr:important. Label descriptions:
@sk593, please add the appropriate label to this PR before merging. |
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #12367 +/- ##
==========================================
- Coverage 53.29% 53.27% -0.03%
==========================================
Files 755 755
Lines 61678 48872 -12806
==========================================
- Hits 32873 26035 -6838
+ Misses 26390 20419 -5971
- Partials 2415 2418 +3 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Register custom resource types from .radius/custom-types.yaml via rad resource-type create --from-file before deploying the recipe pack, and use the fixed .radius/custom-recipe-pack.bicep filename instead of a glob. Each file is optional and independent. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Functional Tests - statestore-noncloud1 tests ±0 0 ✅ - 1 2m 33s ⏱️ -46s For more details on these failures, see this check. Results for commit 7794919. ± Comparison against base commit 83520b8. |
…view Add Repo Radius workflows to delete a Radius application or environment on the same ephemeral k3d control plane the deploy flow uses. Two thin dispatchers (delete-application.yml, delete-environment.yml) detect the provider and call reusable provider workflows (delete-azure.yml, delete-aws.yml), which restore persisted state, delete via the shared delete-resource composite action, and persist the updated state again. delete-resource runs `rad app delete`/`rad env delete <name> --yes --preview` and writes a rad-delete-result artifact. `--preview` is required so these commands use the Radius.Core surface instead of the legacy path; apply the same fix to the `rad env update --recipe-packs` call. Document the delete workflows in the extension README, the deploy design note, and a new radius-delete skill. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Radius functional test overviewClick here to see the test run details
Test Status⌛ Building Radius and pushing container images for functional tests... |
Description
Extends the Repo Radius GitHub Actions workflow templates (
.github/extension/) in two ways:1. Custom types + recipe packs on deploy
The shared
apply-custom-recipe-packscomposite action, wired into both deploy provider workflows after the environment/recipe-pack is created:.radius/custom-types.yamlviarad resource-type create --from-file(skipped if absent)..radius/custom-recipe-pack.bicep(skipped if absent).rad recipe-pack listandrad env update <env> --recipe-packs <all pack ids> --previewso the environment references both the default provider pack and the custom pack.Both files are optional and independent.
2. Delete application / environment workflows
New workflows to delete a Radius application or environment on the same ephemeral k3d control plane the deploy flow uses:
delete-application.yml/delete-environment.yml— thin dispatchers that detect the provider (AZURE_CLIENT_ID/AWS_ROLE_ARN) and call the matching reusable provider workflow.delete-azure.yml/delete-aws.yml— reusable provider workflows that reuse the deploy provider setup (OIDC login, cluster connect, cloud OIDC token projection,rad credential register), restore persisted state, delete, then persist the updated state again. They skip the deploy-only stages (create env, deploy recipe pack, registry creds).actions/delete-resource— shared composite action runningrad app delete/rad env delete <name> --yes --preview, writing arad-delete-resultJSON artifact.Restoring state first (
rad startup) lets the delete see the environment, recipe packs, resources, and Terraform state;rad shutdown(if: always()in teardown) persists the post-delete state so the next operation plans against it.The
--previewfixrad env update,rad app delete, andrad env deletedefault to the legacy implementation and only use the Radius.Core surface when--previewis passed. All Radius.Core commands in these workflows now pass--preview— including therad env update --recipe-packscall, which previously silently no-oped.Docs
.github/extension/README.md— documents the delete workflows and thedelete-resourceaction.eng/design-notes/environments/2026-06-repo-radius-deploy-workflow.md— custom-types/recipe-pack subsection and a new delete-workflows section.radius-deleteskill;radius-deployskill updated for custom types.Type of change
This pull request adds a new feature to Radius.
Validation
yaml.safe_load); embedded bash passesbash -n.delete-resourcescript smoke-tested with a mockedrad: success, unsupported type, empty name, and command-failure paths all produce the correct exit code and artifact JSON.