Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
39ebcc7
Use esbuild instead of webpack to bundle the css extension
mjbvz Feb 13, 2026
2a2f640
Adopt unified js/ts setting for format settings
mjbvz Feb 17, 2026
3f8fc43
Use standard setting name and fix check
mjbvz Feb 18, 2026
ac2c7aa
Adjust z-index for in-editor pane iframes to ensure proper rendering …
mrleemurray Feb 18, 2026
f071a3f
Apply suggestion from @Copilot
mrleemurray Feb 18, 2026
cd0e3f3
Fixing scopes
mjbvz Feb 18, 2026
8f2f873
Mark more settings as language overridable
mjbvz Feb 18, 2026
2d131b8
refine quick input list separator styles and enhance settings editor …
mrleemurray Feb 18, 2026
289ba30
Merge branch 'main' into mrleemurray/uniform-orange-planarian
mrleemurray Feb 18, 2026
7d0d4b2
Add trace logging for slow regex matching in problem matchers (#295961)
Copilot Feb 18, 2026
fa89476
Merge pull request #296039 from microsoft/mrleemurray/managerial-sapp…
mrleemurray Feb 18, 2026
2518e1f
Merge pull request #296019 from microsoft/mrleemurray/uniform-orange-…
mrleemurray Feb 18, 2026
9a40349
Bump tar from 7.5.7 to 7.5.9 in /build/npm/gyp (#295930)
dependabot[bot] Feb 18, 2026
5101ad8
Bump fast-xml-parser and @azure/core-xml in /build (#295914)
dependabot[bot] Feb 18, 2026
2b3ee49
Bump tar from 7.5.7 to 7.5.9 (#295928)
dependabot[bot] Feb 18, 2026
ccc44bc
Merge branch 'main' into dev/mjbvz/foolish-quelea
mjbvz Feb 18, 2026
4e34c96
feat: Add emergency alert banner to all qualities, with polling (#296…
joaomoreno Feb 18, 2026
768dfb8
Merge pull request #295862 from mjbvz/dev/mjbvz/foolish-quelea
mjbvz Feb 18, 2026
b9d5c49
fixing/polishing sessions
benibenj Feb 18, 2026
f4d018f
use URI instead of ID (#296050)
meganrogge Feb 18, 2026
bae06f0
Refresh checkpoint UI (#294282)
daviddossett Feb 18, 2026
3ec917c
Brighten list selection foreground in 2026 dark theme (#296053)
daviddossett Feb 18, 2026
10d738c
Add cyclic dependency check script and tests (#296035)
jrieken Feb 18, 2026
cbb69c4
Merge pull request #296059 from microsoft/benibenj/chilly-octopus
benibenj Feb 18, 2026
3810f97
Add "Show Details" button to chat setup timeout message (#295653)
Copilot Feb 18, 2026
e253afd
fix pickers in chat view pane (#296041)
sandy081 Feb 18, 2026
540f083
use a simple action widget dropdown (#296048)
sandy081 Feb 18, 2026
dd0c05b
Add telemetry for stop button
roblourens Feb 18, 2026
5a566c2
Merge pull request #295104 from microsoft/dev/mjbvz/esbuild-css
mjbvz Feb 18, 2026
e3f174c
Add Azure Pipeline skill (#295985)
joaomoreno Feb 18, 2026
a67c466
Remove context window usage tip (#296070)
Copilot Feb 18, 2026
9cd04d0
Polish action widget styling (#296074)
daviddossett Feb 18, 2026
67c89aa
fix tip dismissal (#296058)
meganrogge Feb 18, 2026
9e187a1
Merge pull request #296067 from microsoft/roblou/allied-panther
roblourens Feb 18, 2026
942612a
Remove modal dialog when disabling chat tips (#296068)
Copilot Feb 18, 2026
29866e5
improve emergency alert banner update logic to avoid unnecessary upda…
joaomoreno Feb 18, 2026
9b58579
Revert "sessions - show count for all groups (fix #291606)" (#296086)
bpasero Feb 18, 2026
f1eb6bb
Don't sync the tool picker with other sessions started in the same wi…
roblourens Feb 18, 2026
8eef7de
Revert "adding inline completions in the chat input" (#296085)
aiday-mar Feb 18, 2026
befc4f7
Deduplicate identical markers from different owners in Problems panel…
Copilot Feb 18, 2026
4f18509
Revert "sessions - remove CLI support (not used)" (#296088)
bpasero Feb 18, 2026
8e30c44
hide tip on quota reaching zero (#296092)
meganrogge Feb 18, 2026
97c1c0d
Merge pull request #296101 from microsoft/roblou/circular-centipede
roblourens Feb 18, 2026
4831ff5
sessions - disable hover for now (#296102)
bpasero Feb 18, 2026
430b0f9
Add toggle for thinking content in chat accessible view (#295017)
Copilot Feb 18, 2026
640df84
Render action widget footer links as bottom list items (#296095)
daviddossett Feb 18, 2026
da59fee
sessions - move actions down out of title into view (#296107)
bpasero Feb 18, 2026
21d150a
Fix enabled implicit context in ask mode (#295974)
alexr00 Feb 18, 2026
f62aa0c
Add `newChatSessionItemHandler` to let chat sessions create new sess…
mjbvz Feb 18, 2026
cba9372
custom thinking phrases (#295966)
justschen Feb 18, 2026
cf65b7a
add tip for /create* (#296116)
meganrogge Feb 18, 2026
bfe8da1
Merge pull request #296121 from mjbvz/dev/mjbvz/mixed-mole
mjbvz Feb 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
241 changes: 241 additions & 0 deletions .github/skills/azure-pipelines/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,241 @@
---
name: azure-pipelines
description: Use when validating Azure DevOps pipeline changes for the VS Code build. Covers queueing builds, checking build status, viewing logs, and iterating on pipeline YAML changes without waiting for full CI runs.
---

# 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

1. **Check if Azure CLI is installed**:
```bash
az --version
```

If not installed, install it:
```bash
# macOS
brew install azure-cli

# Windows (PowerShell as Administrator)
winget install Microsoft.AzureCLI

# Linux (Debian/Ubuntu)
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
```

2. **Check if the DevOps extension is installed**:
```bash
az extension show --name azure-devops
```

If not installed, add it:
```bash
az extension add --name azure-devops
```

3. **Authenticate**:
```bash
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](./azure-pipeline.ts) to queue a validation build:

```bash
# Queue a build on the current branch
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts queue

# Queue with a specific source branch
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts queue --branch my-feature-branch

# Queue with custom variables (e.g., to skip certain stages)
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts queue --variables "SKIP_TESTS=true"
```

> **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:
> ```bash
> # Find the build ID from status, then cancel it
> node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts status
> node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts cancel --build-id <id>
> node --experimental-strip-types .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) |
| `--variables <vars>` | Pipeline variables in `KEY=value` format, space-separated |
| `--dry-run` | Print the command without executing |

---

## Checking Build Status

Use the [status command](./azure-pipeline.ts) to monitor a running build:

```bash
# Get status of the most recent build on your branch
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts status

# Get overview of a specific build by ID
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts status --build-id 123456

# Watch build status (refreshes every 30 seconds)
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts status --watch

# Watch with custom interval (60 seconds)
node --experimental-strip-types .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](./azure-pipeline.ts) to stop a running build:

```bash
# Cancel a build by ID (use status command to find IDs)
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts cancel --build-id 123456

# Dry run (show what would be cancelled)
node --experimental-strip-types .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 |

---

## Common Workflows

### 1. Quick Pipeline Validation

```bash
# 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 --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts status
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts cancel --build-id <id> # if there's an active build

# Queue and watch the new build
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts queue
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts status --watch
```

### 2. Investigate a Build

```bash
# Get overview of a build (shows stages, artifacts, and log IDs)
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts status --build-id 123456

# Download a specific log for deeper inspection
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts status --build-id 123456 --download-log 5

# Download an artifact
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts status --build-id 123456 --download-artifact unsigned_vscode_cli_win32_x64_cli
```

### 3. Test with Modified Variables

```bash
# Skip expensive stages during validation
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts queue --variables "VSCODE_BUILD_SKIP_INTEGRATION_TESTS=true"
```

### 4. Cancel a Running Build

```bash
# First, find the build ID
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts status

# Cancel a specific build by ID
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts cancel --build-id 123456

# Dry run to see what would be cancelled
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts cancel --build-id 123456 --dry-run
```

### 5. Iterate on Pipeline Changes

When iterating on pipeline YAML changes, always cancel obsolete builds before queueing new ones:

```bash
# Push new changes
git add -A && git commit --amend --no-edit
git push --force-with-lease origin HEAD

# Find the outdated build ID and cancel it
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts status
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts cancel --build-id <id>

# Queue a fresh build and monitor
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts queue
node --experimental-strip-types .github/skills/azure-pipelines/azure-pipeline.ts status --watch
```

---

## Troubleshooting

### Authentication Issues
```bash
# Re-authenticate
az logout
az login

# Check current account
az account show
```

### Extension Not Found
```bash
az extension add --name azure-devops --upgrade
```

### Rate Limiting
If you hit rate limits, add delays between API calls or use `--watch` with a longer interval.
Loading
Loading