Migrate from fabric-cicd¶
Everything you have stays. Keep your config.yml files and parameter.yml rules: allez runs each workspace folder through the Fabric CLI's fab deploy as a fabric-cicd configuration deployment. If you call fabric-cicd's Python API directly, first convert to a configuration deployment per workspace folder.
We start with the main new file: a root allez.yml. It lists the environments and the order the config.yml files deploy in.
The following pages cover hooks and overlays, branch workspaces and cross-workspace references.
Repo structure¶
One repo holds one solution. fabric/ is the solution root; each folder directly beneath it is one workspace in each environment. A workspace folder still looks like a fabric-cicd repo: a config.yml, a parameter.yml and the <Name>.<Type> item folders.
└── 📁 fabric/
├── 📁 data/
│ ├── 📄 config.yml # (1)!
│ ├── 📄 parameter.yml # (2)!
│ ├── 📁 Ingest.Notebook/
│ └── 📁 Raw.Lakehouse/
└── 📁 reporting/
├── 📄 config.yml
├── 📄 parameter.yml
├── 📁 Sales.SemanticModel/
└── 📁 Sales.Report/
- Workspace targets and publish scope.
core.workspacenames each environment's workspace. - Environment-specific replacements.
parameter.yml extend: templates
Existing extend: templates keep working. They must be one level deep and stay inside their workspace folder (splitting a large parameter.yml).
The deployment dag¶
Add a root allez.yml, list the environments and the order the config.yml files deploy in. allez deploy runs one fab deploy per node, in that order. Only configs named in the dag: deploy.
- Solution root
allez.yml: environments and the deployment dag. Its first line names the schema at the tag you install (editor support).
# yaml-language-server: $schema=https://raw.githubusercontent.com/EvaluationContext/allez/0.1.0/allez.schema.json
version: 1
environments: [dev]
dag:
- config: data/config.yml
- config: reporting/config.yml
depends_on: [data/config.yml]
depends_on: decides the order. Where it says nothing, two nodes run in the order they are listed. A node that depends on nothing runs before any node that waits on another, wherever it sits in the list.
Full reference: allez.yml and the deployment dag.
Preview the deploy¶
From the repo root, preview it without credentials or changes to Fabric:
The plan shows data before reporting and the exact fab deploy command for each. Without --plan, the same command deploys. Every verb that calls Fabric takes --plan (commands).