azure-pipelines▌
microsoft/vscode · updated Apr 8, 2026
MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.
When modifying Azure DevOps pipeline files (YAML files in build/azure-pipelines/), you can validate changes locally using the Azure CLI before committing. This avoids the slow feedback loop of pushing changes, waiting for CI, and checking results.
Validating Azure Pipeline Changes
When modifying Azure DevOps pipeline files (YAML files in build/azure-pipelines/), you can validate changes locally using the Azure CLI before committing. This avoids the slow feedback loop of pushing changes, waiting for CI, and checking results.
Prerequisites
-
Check if Azure CLI is installed:
az --versionIf not installed, install it:
# macOS brew install azure-cli # Windows (PowerShell as Administrator) winget install Microsoft.AzureCLI # Linux (Debian/Ubuntu) curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash -
Check if the DevOps extension is installed:
az extension show --name azure-devopsIf not installed, add it:
az extension add --name azure-devops -
Authenticate:
az login az devops configure --defaults organization=https://dev.azure.com/monacotools project=Monaco
VS Code Main Build
The main VS Code build pipeline:
- Organization:
monacotools - Project:
Monaco - Definition ID:
111 - URL: https://dev.azure.com/monacotools/Monaco/_build?definitionId=111
VS Code Insider Scheduled Builds
Two Insider builds run automatically on a scheduled basis:
- Morning build: ~7:00 AM CET
- Evening build: ~7:00 PM CET
These scheduled builds use the same pipeline definition (111) but run on the main branch to produce Insider releases.
Queueing a Build
Use the queue command to queue a validation build:
# Queue a build on the current branch
node .github/skills/azure-pipelines/azure-pipeline.ts queue
# Queue with a specific source branch
node .github/skills/azure-pipelines/azure-pipeline.ts queue --branch my-feature-branch
# Queue with custom parameters
node .github/skills/azure-pipelines/azure-pipeline.ts queue --parameter "VSCODE_BUILD_WEB=false" --parameter "VSCODE_PUBLISH=false"
# Parameter value with spaces
node .github/skills/azure-pipelines/azure-pipeline.ts queue --parameter "VSCODE_BUILD_TYPE=Product Build"
Important: Before queueing a new build, cancel any previous builds on the same branch that you no longer need. This frees up build agents and reduces resource waste:
# Find the build ID from status, then cancel it node .github/skills/azure-pipelines/azure-pipeline.ts status node .github/skills/azure-pipelines/azure-pipeline.ts cancel --build-id <id> node .github/skills/azure-pipelines/azure-pipeline.ts queue
Script Options
| Option | Description |
|---|---|
--branch <name> |
Source branch to build (default: current git branch) |
--definition <id> |
Pipeline definition ID (default: 111) |
--parameter <entry> |
Pipeline parameter in KEY=value format (repeatable); use this when the value contains spaces |
--parameters <list> |
Space-separated parameters in KEY=value KEY2=value2 format; values must not contain spaces |
--dry-run |
Print the command without executing |
Product Build Queue Parameters (build/azure-pipelines/product-build.yml)
| Name | Type | Default | Allowed Values | Description |
|---|---|---|---|---|
VSCODE_QUALITY |
string | insider |
exploration, insider, stable |
Build quality channel |
VSCODE_BUILD_TYPE |
string | Product Build |
Product, CI |
Build mode for Product vs CI |
NPM_REGISTRY |
string | https://pkgs.dev.azure.com/monacotools/Monaco/_packaging/vscode/npm/registry/ |
any URL | Custom npm registry |
CARGO_REGISTRY |
string | sparse+https://pkgs.dev.azure.com/monacotools/Monaco/_packaging/vscode/Cargo/index/ |
any URL | Custom Cargo registry |
VSCODE_BUILD_WIN32 |
boolean | true |
true, false |
Build Windows x64 |
VSCODE_BUILD_WIN32_ARM64 |
boolean | true |
true, false |
Build Windows arm64 |
VSCODE_BUILD_LINUX |
boolean | true |
true, false |
Build Linux x64 |
VSCODE_BUILD_LINUX_SNAP |
boolean | true |
true, false |
Build Linux x64 Snap |
VSCODE_BUILD_LINUX_ARM64 |
boolean | true |
true, false |
Build Linux arm64 |
VSCODE_BUILD_LINUX_ARMHF |
boolean | true |
true, false |
Build Linux armhf |
VSCODE_BUILD_ALPINE |
boolean | true |
true, false |
Build Alpine x64 |
VSCODE_BUILD_ALPINE_ARM64 |
boolean | true |
true, false |
Build Alpine arm64 |
VSCODE_BUILD_MACOS |
boolean | true |
true, false |
Build macOS x64 |
VSCODE_BUILD_MACOS_ARM64 |
boolean | true |
true, false |
Build macOS arm64 |
VSCODE_BUILD_MACOS_UNIVERSAL |
boolean | true |
true, false |
Build macOS universal (requires both macOS arches) |
VSCODE_BUILD_WEB |
boolean | true |
true, false |
Build Web artifacts |
VSCODE_PUBLISH |
boolean | true |
true, false |
Publish to builds.code.visualstudio.com |
VSCODE_RELEASE |
boolean | false |
true, false |
Trigger release flow if successful |
VSCODE_STEP_ON_IT |
boolean | false |
true, false |
Skip tests |
Example: run a quick CI-oriented validation with minimal publish/release side effects:
node .github/skills/azure-pipelines/azure-pipeline.ts queue \
--parameter "VSCODE_BUILD_TYPE=CI Build" \
--parameter "VSCODE_PUBLISH=false" \
--parameter "VSCODE_RELEASE=false"
Checking Build Status
Use the status command to monitor a running build:
# Get status of the most recent builds
node .github/skills/azure-pipelines/azure-pipeline.ts status
# Get overview of a specific build by ID
node .github/skills/azure-pipelines/azure-pipeline.ts status --build-id 123456
# Watch build status (refreshes every 30 seconds)
node .github/skills/azure-pipelines/azure-pipeline.ts status --watch
# Watch with custom interval (60 seconds)
node .github/skills/azure-pipelines/azure-pipeline.ts status --watch 60
Script Options
| Option | Description |
|---|---|
--build-id <id> |
Specific build ID (default: most recent on current branch) |
--branch <name> |
Filter builds by branch name (shows last 20 builds for branch) |
--reason <reason> |
Filter builds by reason: manual, individualCI, batchedCI, schedule, pullRequest |
--definition <id> |
Pipeline definition ID (default: 111) |
--watch [seconds] |
Continuously poll status until build completes (default: 30s) |
--download-log <id> |
Download a specific log to /tmp |
--download-artifact <name> |
Download artifact to /tmp |
--json |
Output raw JSON for programmatic consumption |
Cancelling a Build
Use the cancel command to stop a running build:
# Cancel a build by ID (use status command to find IDs)
node .github/skills/azure-pipelines/azure-pipeline.ts cancel --build-id 123456
# Dry run (show what would be cancelled)
node .github/skills/azure-pipelines/azure-pipeline.ts cancel --build-id 123456 --dry-run
Script Options
| Option | Description |
|---|---|
--build-id <id> |
Build ID to cancel (required) |
--definition <id> |
Pipeline definition ID (default: 111) |
--dry-run |
Print what would be cancelled without executing |
Testing Pipeline Changes
When the user asks to test changes in an Azure Pipelines build, follow this workflow:
- Queue a new build on the current branch
- Poll for completion by periodically checking the build status until it finishes
Polling for Build Completion
Use a shell loop with sleep to poll the build status. The sleep command works on all major operating systems:
# Queue the build and note the build ID from output (e.g., 123456)
node .github/skills/azure-pipelines/azure-pipeline.ts queue
# Poll every 60 seconds until complete (works on macOS, Linux, and Windows with Git Bash/WSL)
# Replace <BUILD_ID> with the actual build ID from the queue command
while true; do
node .github/skills/azure-pipelines/azure-pipeline.ts status --build-id <BUILD_ID> --json 2>/dev/null | grep -q '"status": "completed"' && break
sleep 60
done
# Check final result
node .github/skills/azure-pipelines/azure-pipeline.ts status --build-id <BUILD_ID>
Alternatively, use the built-in --watch flag which handles polling automatically:
node .github/skills/azure-pipelines/azure-pipeline.ts queue
# Use the build ID returned by the queue command
node .github/skills/azure-pipelines/azure-pipeline.ts status --build-id <BUILD_ID> --watch
Note: The
--watchflag polls every 30 seconds by default. Use--watch 60for a 60-second interval to reduce API calls.
Common Workflows
1. Quick Pipeline Validation
# Make your YAML changes, then:
git add -A && git commit -m "test: pipeline changes"
git push origin HEAD
# Check for any previous builds on this branch and cancel if needed
node .github/skills/azure-pipelines/azure-pipeline.ts status
node .github/skills/azure-pipelines/azure-pipeline.ts cancel --build-id <id> # if there's an active build
# Queue and watch the new build
node .github/skills/azure-pipelines/azure-pipeline.ts queue
node .github/skills/azure-pipelines/azure-pipeline.ts status --watch
2. Investigate a Build
# Get overview of a build (shows stages, artifacts, and log IDs)
node .github/skills/azure-pipelines/azure-pipeline.ts status --build-id 123456
# Download a specific log for deeper inspection
node .github/skills/azure-pipelines/azure-pipeline.ts status --build-id 123456 --download-log 5
# Download an artifact
node .github/skills/azure-pipelines/azure-pipeline.ts status --build-id 123456 --download-artifact unsigned_vscode_cli_win32_x64_cli
3. Test with Modified Parameters
# Customize build matrix for quicker validation
node .github/skills/azure-pipelines/azure-pipeline.ts queue \
--parameter "VSCODE_BUILD_TYPE=CI Build" \
--parameter "VSCODE_BUILD_WEB=false" \
--parameter "VSCODE_BUILD_ALPINE=false" \
--parameter "VSCODE_BUILD_ALPINE_ARM64=false" \
--parameter "VSCODE_PUBLISH=false"
4. Cancel a Running Build
# First, find the build ID
node .github/skills/azure-pipelines/azure-pipeline.ts status
# Cancel a specific build by ID
node .github/skills/azure-pipelines/azure-pipeline.ts cancel --build-id 123456
# Dry run to see what would be cancelledHow to use azure-pipelines on Cursor
AI-first code editor with Composer
Prerequisites
Before installing skills in Cursor, ensure your development environment meets these requirements:
- ›Cursor installed and configured on your development machine
- ›Node.js version 16.0+ with npm package manager (verify with
node --version) - ›Active project directory or workspace where you want to add azure-pipelines
Execute installation command
Execute the skills CLI command in your project's root directory to begin installation:
The skills CLI fetches azure-pipelines from GitHub repository microsoft/vscode and configures it for Cursor.
Select Cursor when prompted
The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:
Verify installation
Confirm successful installation by checking the skill directory location:
Reload or restart Cursor to activate azure-pipelines. Access the skill through slash commands (e.g., /azure-pipelines) or your agent's skill management interface.
Security & Verification Notice
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your development environment. Always verify the publisher's identity, review recent commits, and test in isolated environments before production deployment.
List & Monetize Your Skill
Submit your Claude Code skill and start earning
Use Cases▌
Task Automation & Efficiency
Automate repetitive workflows and reduce manual effort
Example
Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Knowledge Enhancement
Learn new skills, understand complex topics, get expert guidance
Example
Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Quality Improvement
Enhance output quality through reviews, suggestions, and refinements
Example
Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
Implementation Guide▌
Prerequisites
- ›Claude Desktop or compatible AI client with skill support
- ›Clear understanding of task or problem to solve
- ›Willingness to iterate and refine outputs
Time Estimate
15-45 minutes depending on use case complexity
Installation Steps
- 1.Install skill using provided installation command
- 2.Test with simple use case relevant to your work
- 3.Evaluate output quality and relevance
- 4.Iterate on prompts to improve results
- 5.Integrate into regular workflow if valuable
Common Pitfalls
- ⚠Expecting perfect results without iteration
- ⚠Not providing enough context in prompts
- ⚠Using skill for tasks outside its intended scope
- ⚠Accepting outputs without review and validation
Best Practices▌
✓ Do
- +Start with clear, specific prompts
- +Provide relevant context and constraints
- +Review and refine all outputs before using
- +Iterate to improve output quality
- +Document successful prompt patterns
✗ Don't
- −Don't use without understanding skill limitations
- −Don't skip validation of outputs
- −Don't share sensitive information in prompts
- −Don't expect skill to replace human judgment
💡 Pro Tips
- ★Be specific about desired format and style
- ★Ask for multiple options to choose from
- ★Request explanations to understand reasoning
- ★Combine AI efficiency with human expertise
When to Use This▌
✓ Use When
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid When
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
Learning Path▌
- 1Familiarize yourself with skill capabilities and limitations
- 2Start with low-risk, non-critical tasks
- 3Progress to more complex and valuable use cases
- 4Build expertise through regular use and experimentation
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.6★★★★★66 reviews- ★★★★★Omar Reddy· Dec 24, 2024
Solid pick for teams standardizing on skills: azure-pipelines is focused, and the summary matches what you get after install.
- ★★★★★Arjun Park· Dec 20, 2024
azure-pipelines is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Arya Sethi· Dec 20, 2024
azure-pipelines reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Min Shah· Dec 20, 2024
I recommend azure-pipelines for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Nia Jain· Dec 16, 2024
azure-pipelines has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Dhruvi Jain· Dec 12, 2024
Registry listing for azure-pipelines matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Tariq Ndlovu· Nov 15, 2024
Registry listing for azure-pipelines matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Arjun Li· Nov 15, 2024
azure-pipelines fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Arjun Okafor· Nov 11, 2024
Keeps context tight: azure-pipelines is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Amelia Flores· Nov 11, 2024
We added azure-pipelines from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
showing 1-10 of 66