Promote test to main: bulk import workflows + fabric-cicd renames#18
Merged
Conversation
New workflows add a second deployment path using the Fabric Bulk Import Item
Definitions API (Preview), running in parallel with the existing fabric-cicd
workflows. Selection between the two is controlled by the DEPLOY_METHOD
repository variable:
- 'fabric-cicd' or unset: existing fabric-cicd path runs (default)
- 'bulk': new bulk import path runs
- any other value: both deploy workflows skip
New files:
- .github/workflows/reusable-deploy-bulk.yml: token, payload, POST,
LRO polling, per-item status verification
- .github/workflows/deploy-test-bulk.yml: Test orchestrator
- .github/workflows/deploy-prod-bulk.yml: Prod orchestrator
Modified:
- deploy-test.yml, deploy-prod.yml: added DEPLOY_METHOD if-gate
- etl-test.yml, etl-prod.yml: registered bulk workflows in workflow_run
so ETL fires once after whichever deploy actually ran
Promote dev to test: Bulk Import API workflows
Renames the display names of the fabric-cicd deployment workflows from 'Deploy to Test'/'Deploy to Prod' to 'Deploy to Test (fabric-cicd)' and 'Deploy to Prod (fabric-cicd)' so the deployment method is explicit in the GitHub Actions UI alongside the '(Bulk API)' variants. Updates the workflow_run.workflows lists in etl-test.yml and etl-prod.yml to match the new names, preserving the ETL chaining behavior.
Promote dev to test: workflow rename + first bulk deploy
Fixes a 400 RequestCouldNotBeParsed error from the Bulk Import API caused by
sending the .gitkeep file at the root of data/fabric/ as a definition part.
The API rejects paths that don't fit the *.<Type>/... item pattern.
Two layers of exclusion now apply:
- Named exclusions: parameter.yml, .gitkeep
- Structural rule: any file directly under repository_directory is skipped
because item definitions only live inside *.<Type>/ subfolders
Promote fix to test: exclude root-level files from bulk payload
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.
Promotes all the workflow changes from test to main:
reusable-deploy-bulk.yml,deploy-test-bulk.yml,deploy-prod-bulk.ymlDeploy to Test->Deploy to Test (fabric-cicd), same for Prodetl-test.ymlandetl-prod.ymlworkflow_run.workflowslists to match new names.gitkeepand root-level filesWhy this PR is needed
GitHub's
workflow_runlistener only evaluates from the default branch (main). After validating bulk in Test, we discovered thatDeploy to Test (Bulk API)'s success did not chain to ETL becausemain'setl-test.ymldoesn't yet know that workflow exists. Promoting tomainresolves the listener gap so future bulk runs trigger ETL correctly.Safety
DEPLOY_METHODhas been flipped back tofabric-cicdbefore opening this PR, so the merge tomainwill triggerDeploy to Prod (fabric-cicd)(the proven path) against the empty Prod workspace. The bulk path will skip on this run.Validation expected after merge
Deploy to Prod (fabric-cicd)runs and succeeds against empty Prod workspaceDeploy to Prod (Bulk API)skipsETL - Prodfires once after fabric-cicd succeeds