[DevOps] PR Builds: PR deployment and cleanup workflows#2033
Open
[DevOps] PR Builds: PR deployment and cleanup workflows#2033
Conversation
Creates two GitHub Actions workflows for per-PR template deployments:
ftk-pr-deploy.yml:
- Triggers on PRs that change src/templates/** files
- Parses PR body checkboxes to determine deployment variants
- Supports: ADX (managed), Fabric (manual), manual, no-data, workbooks, alerts
- Each variant deploys in parallel with isolated resource groups (pr-{number}-{variant})
- Posts PR comments with deployment status and portal links
- Supports fork PRs via "Needs: Deployment" label + pull_request_target
- Verifies fork PRs don't modify .github/ files
ftk-pr-cleanup.yml:
- Triggers on PR close (merged or not)
- Deletes all resource groups matching pr-{number}-*
- Posts cleanup confirmation comment
- Creates GitHub issue assigned to PR author if cleanup fails
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Adds GitHub Actions workflows to support per-PR Azure template deployments (FinOps hubs + variants, workbooks, alerts) and automatic cleanup of PR-specific resource groups, aligning with the toolkit’s CI automation goals for validating src/templates/** changes.
Changes:
- Introduces
ftk-pr-deploy.ymlto parse PR-body deployment checkboxes and run selected deployments with PR-scoped resource groups. - Introduces
ftk-pr-cleanup.ymlto delete PR-scoped resource groups on PR close and notify via PR comment / issue on failure.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 10 comments.
| File | Description |
|---|---|
.github/workflows/ftk-pr-deploy.yml |
New per-PR deployment workflow (checkbox parsing, fork label gating, parallel deployment jobs, PR comments). |
.github/workflows/ftk-pr-cleanup.yml |
New cleanup workflow to remove pr-{number}-* resource groups and report failures. |
- Fix PR body script injection: use env var instead of inline interpolation - Escape literal + in regex patterns for checkbox matching - Fix azure/login: use @v2 release tag instead of branch ref - Fix job name typo: "Hubs + (manual)" → "Hubs (manual)" - Remove unused any-selected output Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Tighten pull_request_target condition to only fire on Needs: Deployment label - Expand fork safety check to block src/scripts/ changes - Add Fabric URI validation before deploy (fails fast as first step) - Change cleanup trigger to pull_request_target for fork PR secret access - Add -ErrorAction Stop to Remove-AzResourceGroup for proper error handling - Fix assignee fallback for external contributors on cleanup failure issues 🤖 Generated with [Claude Code](https://claude.ai/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Collaborator
Author
|
🤖 [AI][Claude] PR Update Summary Addressed: 9 thread(s)
Changes:
Push-backs (code already correct):
|
- Fix fabric-uri script injection: pass via env var instead of direct interpolation
- Add environment approval gate comment for fork PR security
- Add timeout-minutes: 60 to all deployment jobs
- Centralize Az module versions as workflow-level env vars
- Cache Az modules in check-options, restore in deployment jobs
- Update Deploy-Hub calls to use -PR {number} -Name "{variant}"
🤖 Generated with [Claude Code](https://claude.ai/claude-code)
Co-Authored-By: RolandKrummenacher <RolandKrummenacher@users.noreply.github.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Collaborator
Author
|
🤖 [AI][Claude] PR Update Summary Addressed: 5 thread(s)
Also updated all |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🛠️ Description
Adds two GitHub Actions workflows for per-PR template deployment CI:
ftk-pr-deploy.ymlsrc/templates/**files (excluding docs/tests)pr-{number}-{variant}):Needs: Deploymentlabel +pull_request_target(verifies no.github/modifications)ftk-pr-cleanup.ymlpr-{number}-*Dependencies
-PR,-Scope,-ManagedExportsparametersThis is PR D (final) of a multi-PR effort to add per-PR deployment CI.
📋 Checklist
🔬 How did you test this change?
📦 Deploy to test?
🙋♀️ Do any of the following that apply?
📑 Did you update
docs/changelog.md?📖 Did you update documentation?