Skip to content

Commit 2550524

Browse files
committed
Update chat-lib pipeline
1 parent b252db9 commit 2550524

1 file changed

Lines changed: 72 additions & 17 deletions

File tree

extensions/copilot/build/npm-package.yml

Lines changed: 72 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,93 @@ extends:
3648
versionSpec: 22.x
3749
displayName: 🛠 Install Node.js (22.x)
3850

51+
- script: npm config set registry ${{ parameters.NPM_REGISTRY }}
52+
displayName: 🔧 Set npm registry
53+
54+
- download: vscode
55+
artifact: copilot_vsix
56+
displayName: 📥 Download Copilot VSIX
57+
condition: and(succeeded(), ne(variables['resources.pipeline.vscode.runName'], ''))
58+
59+
- bash: |
60+
set -e
61+
if [ -f "$(Pipeline.Workspace)/vscode/copilot_vsix/copilot-chat.vsix" ]; then
62+
unzip -o "$(Pipeline.Workspace)/vscode/copilot_vsix/copilot-chat.vsix" 'extension/package.json' -d /tmp/copilot-vsix
63+
VERSION=$(node -p "require('/tmp/copilot-vsix/extension/package.json').version")
64+
rm -rf /tmp/copilot-vsix
65+
node -e "
66+
const fs = require('fs');
67+
const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
68+
pkg.version = '$VERSION';
69+
fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');
70+
"
71+
echo "Set extension version to $VERSION"
72+
else
73+
echo "No Copilot VSIX found, using version from package.json"
74+
fi
75+
displayName: 📋 Sync version from extension
76+
workingDirectory: extensions/copilot
77+
3978
- bash: npm ci && npm run extract-chat-lib && rm -rf node_modules
4079
displayName: 📂 Extract chat-lib
80+
workingDirectory: extensions/copilot
81+
82+
- bash: |
83+
set -e
84+
VERSION=$(node -p "require('../package.json').version")
85+
node -e "
86+
const fs = require('fs');
87+
const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
88+
pkg.version = '$VERSION';
89+
fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');
90+
"
91+
echo "Set chat-lib version to $VERSION"
92+
displayName: 📋 Sync chat-lib version
93+
workingDirectory: extensions/copilot/chat-lib
4194
4295
- script: npm ci
4396
displayName: 📦 Install chat-lib dependencies
44-
workingDirectory: chat-lib
97+
workingDirectory: extensions/copilot/chat-lib
4598

4699
- script: npm run build
47100
displayName: 🔨 Build chat-lib
48-
workingDirectory: chat-lib
101+
workingDirectory: extensions/copilot/chat-lib
49102
testPlatforms:
50103
- name: Linux
51104
nodeVersions: [22.x]
52105
- name: MacOS
53106
nodeVersions: [22.x]
54107
- name: Windows
55108
nodeVersions: [22.x]
56-
workingDirectory: chat-lib
109+
workingDirectory: extensions/copilot/chat-lib
57110
testSteps:
111+
- script: npm config set registry ${{ parameters.NPM_REGISTRY }}
112+
displayName: 🔧 Set npm registry
113+
58114
- bash: npm ci && npm run extract-chat-lib && rm -rf node_modules
59115
displayName: 📂 Extract chat-lib
116+
workingDirectory: extensions/copilot
60117

61118
- script: npm ci
62119
displayName: 📦 Install chat-lib dependencies
63-
workingDirectory: chat-lib
120+
workingDirectory: extensions/copilot/chat-lib
64121

65122
- script: npm run build
66123
displayName: 🔨 Build chat-lib
67-
workingDirectory: chat-lib
124+
workingDirectory: extensions/copilot/chat-lib
68125

69126
- script: npm test
70127
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)) }}:
128+
workingDirectory: extensions/copilot/chat-lib
129+
# Triggered by ⭐️ VS Code with insider quality → publish to next
130+
${{ if contains(variables['resources.pipeline.vscode.runName'], '(insider)') }}:
74131
publishPackage: true
75132
publishRequiresApproval: false
76-
nextVersion: ${{ replace(variables['Build.SourceBranchName'], 'v', '') }}
77133
tag: next
78-
# Tag-triggered: short patch (e.g., v0.39.1) → publish to latest
79-
${{ elseif startsWith(variables['Build.SourceBranch'], 'refs/tags/v') }}:
134+
# Triggered by ⭐️ VS Code with stable quality → publish to latest
135+
${{ elseif contains(variables['resources.pipeline.vscode.runName'], '(stable)') }}:
80136
publishPackage: true
81137
publishRequiresApproval: false
82-
nextVersion: ${{ replace(variables['Build.SourceBranchName'], 'v', '') }}
83138
${{ elseif eq(parameters.nextVersion, 'none') }}:
84139
publishPackage: false
85140
# Manual prerelease → publish to next
@@ -92,4 +147,4 @@ extends:
92147
publishPackage: true
93148
nextVersion: ${{ parameters.nextVersion }}
94149
ghCreateRelease: false
95-
ghReleaseAddChangeLog: false
150+
ghReleaseAddChangeLog: false

0 commit comments

Comments
 (0)