@@ -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
1210resources :
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
2028parameters :
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