All skills

Azure Data Factory (ADF) CI/CD, deployment, and pipeline development. PROACTIVELY activate for: (1) ADF CI/CD setup (npm validation, ARM template export), (2) ADF ARM template deployment, (3) ADF npm build validation in CI, (4) PrePostDeploymentScript for trigger and resource cleanup, (5) ADF GitHub Actions workflows, (6) ADF Azure DevOps pipelines, (7) ADF Git integration (collaboration vs publish branch), (8) parameterizing linked services and datasets across environments, (9) ADF triggers (schedule, tumbling window, event), (10) deployment slots and blue-green for ADF. Provides: complete CI/CD YAML for GitHub Actions and Azure DevOps, PrePostDeploymentScript reference, parameterization patterns, and trigger management recipes.

Use this Skill: https://skilld.dev/gh/josiahsiegel/claude-plugin-marketplace/adf-master

This session only. Nothing lands on disk.

referencescicd-deployment.md

≈2.3k tokens on demand. Your agent reads this file only when SKILL.md points to it.

ADF CI/CD Deployment (ARM, PrePostDeploymentScript, GitHub Actions, Azure DevOps)

Deep dive into ADF deployment: ARM template generation, the PrePostDeploymentScript.ps1 pattern (stop/start triggers around deploys, cleanup of removed resources), and complete GitHub Actions + Azure DevOps pipeline YAMLs. SKILL.md keeps deprecated features, 2025-2026 updates, doc sources, troubleshooting, and best practices; this reference holds the deployment material.

CI/CD Deployment Methods

Modern Automated Approach (Recommended)

npm Package: @microsoft/azure-data-factory-utilities

Key Features:

  • Validates ADF resources independently of service
  • Generates ARM templates programmatically
  • Enables true CI/CD without manual publish button
  • Supports preview mode for selective trigger management

package.json Configuration:

{
  "scripts": {
    "build": "node node_modules/@microsoft/azure-data-factory-utilities/lib/index",
    "build-preview": "node node_modules/@microsoft/azure-data-factory-utilities/lib/index --preview"
  },
  "dependencies": {
    "@microsoft/azure-data-factory-utilities": "^1.0.3"
  }
}

Commands:

# Validate resources
npm run build validate <rootFolder> <factoryId>

# Generate ARM templates
npm run build export <rootFolder> <factoryId> [outputFolder]

# Preview mode (only stop/start modified triggers)
npm run build-preview export <rootFolder> <factoryId> [outputFolder]

Official Documentation:

Traditional Manual Approach (Legacy)

Method: Git integration + Publish button

Process:

  1. Configure Git integration in ADF UI (Dev environment only)
  2. Make changes in ADF Studio
  3. Click "Publish" button to generate ARM templates
  4. Templates saved to adf_publish branch
  5. Release pipelines deploy from adf_publish branch

When to Use:

  • Migrating from existing setup
  • No build pipeline infrastructure
  • Simple deployments without validation

Limitations:

  • Requires manual publish action
  • No validation until publish
  • Not true CI/CD (manual step required)
  • Can't validate on pull requests

Migration Path: Modern approach recommended for new implementations

ARM Template Deployment

PowerShell Deployment

Primary Command: New-AzResourceGroupDeployment

Syntax:

New-AzResourceGroupDeployment `
  -ResourceGroupName "<resource-group-name>" `
  -TemplateFile "ARMTemplateForFactory.json" `
  -TemplateParameterFile "ARMTemplateParametersForFactory.<environment>.json" `
  -factoryName "<factory-name>" `
  -Mode Incremental `
  -Verbose

Validation:

Test-AzResourceGroupDeployment `
  -ResourceGroupName "<resource-group-name>" `
  -TemplateFile "ARMTemplateForFactory.json" `
  -TemplateParameterFile "ARMTemplateParametersForFactory.<environment>.json" `
  -factoryName "<factory-name>"

What-If Analysis:

New-AzResourceGroupDeployment `
  -ResourceGroupName "<resource-group-name>" `
  -TemplateFile "ARMTemplateForFactory.json" `
  -TemplateParameterFile "ARMTemplateParametersForFactory.<environment>.json" `
  -factoryName "<factory-name>" `
  -WhatIf

Azure CLI Deployment

Primary Command: az deployment group create

Syntax:

az deployment group create \
  --resource-group <resource-group-name> \
  --template-file ARMTemplateForFactory.json \
  --parameters ARMTemplateParametersForFactory.<environment>.json \
  --parameters factoryName=<factory-name> \
  --mode Incremental

Validation:

az deployment group validate \
  --resource-group <resource-group-name> \
  --template-file ARMTemplateForFactory.json \
  --parameters ARMTemplateParametersForFactory.<environment>.json \
  --parameters factoryName=<factory-name>

What-If Analysis:

az deployment group what-if \
  --resource-group <resource-group-name> \
  --template-file ARMTemplateForFactory.json \
  --parameters ARMTemplateParametersForFactory.<environment>.json \
  --parameters factoryName=<factory-name>

PrePostDeploymentScript

Current Version: Ver2

Location: https://github.com/Azure/Azure-DataFactory/blob/main/SamplesV2/ContinuousIntegrationAndDelivery/PrePostDeploymentScript.Ver2.ps1

Key Improvement in Ver2:

  • Turns off/on ONLY triggers that have been modified
  • Ver1 stopped/started ALL triggers (slower, more disruptive)
  • Compares trigger payloads to determine changes

Download Command:

# Linux/macOS/Git Bash
curl -o PrePostDeploymentScript.Ver2.ps1 https://raw.githubusercontent.com/Azure/Azure-DataFactory/main/SamplesV2/ContinuousIntegrationAndDelivery/PrePostDeploymentScript.Ver2.ps1

# PowerShell
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/Azure/Azure-DataFactory/main/SamplesV2/ContinuousIntegrationAndDelivery/PrePostDeploymentScript.Ver2.ps1" -OutFile "PrePostDeploymentScript.Ver2.ps1"

Parameters

Pre-Deployment (Stop Triggers):

./PrePostDeploymentScript.Ver2.ps1 `
  -armTemplate "<path-to-ARMTemplateForFactory.json>" `
  -ResourceGroupName "<resource-group-name>" `
  -DataFactoryName "<factory-name>" `
  -predeployment $true `
  -deleteDeployment $false

Post-Deployment (Start Triggers & Cleanup):

./PrePostDeploymentScript.Ver2.ps1 `
  -armTemplate "<path-to-ARMTemplateForFactory.json>" `
  -ResourceGroupName "<resource-group-name>" `
  -DataFactoryName "<factory-name>" `
  -predeployment $false `
  -deleteDeployment $true

PowerShell Requirements

Version: PowerShell Core (7.0+) recommended

  • Azure DevOps: Use pwsh: true in AzurePowerShell@5 task
  • Locally: Use pwsh command, not powershell

Modules Required:

  • Az.DataFactory
  • Az.Resources

Official Documentation:

GitHub Actions CI/CD

Official Resources

Medium Article (Recent 2025):

Microsoft Community Hub:

Community Blog (February 2025):

Key GitHub Actions

Essential Actions:

  • actions/checkout@v4 - Checkout repository
  • actions/setup-node@v4 - Setup Node.js
  • actions/upload-artifact@v4 - Publish ARM templates
  • actions/download-artifact@v4 - Download ARM templates in deploy workflow
  • azure/login@v2 - Authenticate to Azure
  • azure/arm-deploy@v2 - Deploy ARM templates
  • azure/powershell@v2 - Run PrePostDeploymentScript

Authentication Methods

Service Principal (JSON credentials):

{
  "clientId": "<GUID>",
  "clientSecret": "<STRING>",
  "subscriptionId": "<GUID>",
  "tenantId": "<GUID>"
}

Store in GitHub secret: AZURE_CREDENTIALS

Workload Identity Federation (More secure):

Azure DevOps CI/CD

Official Resources

Microsoft Learn:

Community Guides:

Towards Data Science:

Key Azure DevOps Tasks

Build Pipeline Tasks:

  • UseNode@1 - Install Node.js
  • Npm@1 - Install packages, run build commands
  • PublishPipelineArtifact@1 - Publish ARM templates

Release Pipeline Tasks:

  • DownloadPipelineArtifact@2 - Download ARM templates
  • AzurePowerShell@5 - Run PrePostDeploymentScript
  • AzureResourceManagerTemplateDeployment@3 - Deploy ARM template

Service Connection Requirements

Permissions Needed:

  • Data Factory Contributor (on all Data Factories)
  • Contributor (on Resource Groups)
  • Key Vault access policies (if using secrets)

Configuration:

  • Project Settings → Service connections → New service connection
  • Type: Azure Resource Manager
  • Authentication: Service Principal (recommended) or Managed Identity

Source: SKILL.md on GitHub

1 warning11d4 checks · Risk SAFE
  • Gen Agent Trust Hub11d

    The adf-master skill is a specialized knowledge base for Azure Data Factory CI/CD and pipeline development. It provides official documentation links, JSON templates for activities and datasets, and recommended deployment patterns using Microsoft-official utilities and scripts. All external resources and dependencies originate from trusted repositories, and no malicious patterns or security risks were identified.

  • Socket11d

    No alerts

  • Snyk11d

    Risk: LOW · No issues

  • Runlayer6mo

    3/6 files flagged

Signed by skilld at a016959. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 months ago.

Steadyupdated 4 months ago

README badge

README badge for josiahsiegel/claude-plugin-marketplace/adf-master