Skip to content

Commit 7be6fc4

Browse files
chrmartiCopilot
andcommitted
Update chat-lib pipeline
Co-authored-by: Copilot <copilot@github.com>
1 parent b252db9 commit 7be6fc4

File tree

1 file changed

+90
-17
lines changed

1 file changed

+90
-17
lines changed

extensions/copilot/build/npm-package.yml

Lines changed: 90 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@ trigger:
33
branches:
44
include:
55
- main
6-
tags:
7-
include:
8-
- v*
6+
- release/*
97

10-
pr: [main]
8+
pr: none
119

1210
resources:
1311
repositories:
@@ -16,8 +14,22 @@ resources:
1614
name: microsoft/vscode-engineering
1715
ref: main
1816
endpoint: Monaco
17+
pipelines:
18+
- pipeline: vscode
19+
source: '⭐️ VS Code'
20+
trigger:
21+
stages:
22+
- Release
23+
branches:
24+
include:
25+
- main
26+
- release/*
1927

2028
parameters:
29+
- name: NPM_REGISTRY
30+
displayName: "Custom NPM Registry"
31+
type: string
32+
default: 'https://pkgs.dev.azure.com/monacotools/Monaco/_packaging/vscode/npm/registry/'
2133
- name: nextVersion
2234
displayName: '🚀 Release Version (eg: none, major, minor, patch, prerelease, or X.X.X)'
2335
type: string
@@ -36,50 +48,111 @@ extends:
3648
versionSpec: 22.x
3749
displayName: 🛠 Install Node.js (22.x)
3850

51+
- bash: |
52+
npm config set registry ${{ parameters.NPM_REGISTRY }}
53+
echo "##vso[task.setvariable variable=NPMRC_PATH]$(npm config get userconfig)"
54+
displayName: 🔧 Set npm registry
55+
56+
- task: npmAuthenticate@0
57+
inputs:
58+
workingFile: $(NPMRC_PATH)
59+
displayName: 🔑 Authenticate npm
60+
61+
- download: vscode
62+
artifact: copilot_vsix
63+
displayName: 📥 Download Copilot VSIX
64+
condition: and(succeeded(), ne(variables['resources.pipeline.vscode.runName'], ''))
65+
66+
- bash: |
67+
set -e
68+
if [ -f "$(Pipeline.Workspace)/vscode/copilot_vsix/copilot-chat.vsix" ]; then
69+
unzip -o "$(Pipeline.Workspace)/vscode/copilot_vsix/copilot-chat.vsix" 'extension/package.json' -d /tmp/copilot-vsix
70+
VERSION=$(node -p "require('/tmp/copilot-vsix/extension/package.json').version")
71+
rm -rf /tmp/copilot-vsix
72+
node -e "
73+
const fs = require('fs');
74+
const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
75+
pkg.version = '$VERSION';
76+
fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');
77+
"
78+
echo "Set extension version to $VERSION"
79+
else
80+
echo "No Copilot VSIX found, using version from package.json"
81+
fi
82+
displayName: 📋 Sync version from extension
83+
workingDirectory: extensions/copilot
84+
3985
- bash: npm ci && npm run extract-chat-lib && rm -rf node_modules
4086
displayName: 📂 Extract chat-lib
87+
workingDirectory: extensions/copilot
88+
env:
89+
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
90+
91+
- bash: |
92+
set -e
93+
VERSION=$(node -p "require('../package.json').version")
94+
node -e "
95+
const fs = require('fs');
96+
const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
97+
pkg.version = '$VERSION';
98+
fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');
99+
"
100+
echo "Set chat-lib version to $VERSION"
101+
displayName: 📋 Sync chat-lib version
102+
workingDirectory: extensions/copilot/chat-lib
41103
42104
- script: npm ci
43105
displayName: 📦 Install chat-lib dependencies
44-
workingDirectory: chat-lib
106+
workingDirectory: extensions/copilot/chat-lib
45107

46108
- script: npm run build
47109
displayName: 🔨 Build chat-lib
48-
workingDirectory: chat-lib
110+
workingDirectory: extensions/copilot/chat-lib
49111
testPlatforms:
50112
- name: Linux
51113
nodeVersions: [22.x]
52114
- name: MacOS
53115
nodeVersions: [22.x]
54116
- name: Windows
55117
nodeVersions: [22.x]
56-
workingDirectory: chat-lib
118+
workingDirectory: extensions/copilot/chat-lib
57119
testSteps:
120+
- bash: |
121+
npm config set registry ${{ parameters.NPM_REGISTRY }}
122+
echo "##vso[task.setvariable variable=NPMRC_PATH]$(npm config get userconfig)"
123+
displayName: 🔧 Set npm registry
124+
125+
- task: npmAuthenticate@0
126+
inputs:
127+
workingFile: $(NPMRC_PATH)
128+
displayName: 🔑 Authenticate npm
129+
58130
- bash: npm ci && npm run extract-chat-lib && rm -rf node_modules
59131
displayName: 📂 Extract chat-lib
132+
workingDirectory: extensions/copilot
133+
env:
134+
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
60135

61136
- script: npm ci
62137
displayName: 📦 Install chat-lib dependencies
63-
workingDirectory: chat-lib
138+
workingDirectory: extensions/copilot/chat-lib
64139

65140
- script: npm run build
66141
displayName: 🔨 Build chat-lib
67-
workingDirectory: chat-lib
142+
workingDirectory: extensions/copilot/chat-lib
68143

69144
- script: npm test
70145
displayName: 🧪 Run chat-lib tests
71-
workingDirectory: chat-lib
72-
# Tag-triggered: date-stamped patch (e.g., v0.40.2026031601) → publish to next
73-
${{ if and(startsWith(variables['Build.SourceBranch'], 'refs/tags/v'), gt(length(variables['Build.SourceBranchName']), 13)) }}:
146+
workingDirectory: extensions/copilot/chat-lib
147+
# Triggered by ⭐️ VS Code with insider quality → publish to next
148+
${{ if contains(variables['resources.pipeline.vscode.runName'], '(insider)') }}:
74149
publishPackage: true
75150
publishRequiresApproval: false
76-
nextVersion: ${{ replace(variables['Build.SourceBranchName'], 'v', '') }}
77151
tag: next
78-
# Tag-triggered: short patch (e.g., v0.39.1) → publish to latest
79-
${{ elseif startsWith(variables['Build.SourceBranch'], 'refs/tags/v') }}:
152+
# Triggered by ⭐️ VS Code with stable quality → publish to latest
153+
${{ elseif contains(variables['resources.pipeline.vscode.runName'], '(stable)') }}:
80154
publishPackage: true
81155
publishRequiresApproval: false
82-
nextVersion: ${{ replace(variables['Build.SourceBranchName'], 'v', '') }}
83156
${{ elseif eq(parameters.nextVersion, 'none') }}:
84157
publishPackage: false
85158
# Manual prerelease → publish to next
@@ -92,4 +165,4 @@ extends:
92165
publishPackage: true
93166
nextVersion: ${{ parameters.nextVersion }}
94167
ghCreateRelease: false
95-
ghReleaseAddChangeLog: false
168+
ghReleaseAddChangeLog: false

0 commit comments

Comments
 (0)