提交 2cf65481 编写于 作者: J Joao Moreno

streamline windows build

上级 21d210da
......@@ -9,12 +9,14 @@ const gulp = require('gulp');
const path = require('path');
const assert = require('assert');
const cp = require('child_process');
const _7z = require('7zip')['7z'];
const util = require('./lib/util');
const pkg = require('../package.json');
const product = require('../product.json');
const repoPath = path.dirname(__dirname);
const buildPath = path.join(path.dirname(repoPath), 'VSCode-win32');
const zipPath = path.join(repoPath, '.build', 'win32', 'archive', 'VSCode-win32.zip');
const issPath = path.join(__dirname, 'win32', 'code.iss');
const innoSetupPath = path.join(path.dirname(path.dirname(require.resolve('innosetup-compiler'))), 'bin', 'ISCC.exe');
......@@ -24,9 +26,9 @@ function packageInnoSetup(iss, options, cb) {
const definitions = options.definitions || {};
const keys = Object.keys(definitions);
keys.forEach(key => assert(typeof definitions[key] === 'string', `Missing value for '${ key }' in Inno Setup package step`));
keys.forEach(key => assert(typeof definitions[key] === 'string', `Missing value for '${key}' in Inno Setup package step`));
const defs = keys.map(key => `/d${ key }=${ definitions[key] }`);
const defs = keys.map(key => `/d${key}=${definitions[key]}`);
const args = [iss].concat(defs);
cp.spawn(innoSetupPath, args, { stdio: 'inherit' })
......@@ -57,3 +59,14 @@ function buildWin32Setup(cb) {
gulp.task('clean-vscode-win32-setup', util.rimraf('.build/win32/setup'));
gulp.task('vscode-win32-setup', ['clean-vscode-win32-setup'], buildWin32Setup);
function archiveWin32Setup(cb) {
const args = ['a', '-tzip', zipPath, buildPath, '-r'];
cp.spawn(_7z, args, { stdio: 'inherit' })
.on('error', cb)
.on('exit', () => cb(null));
}
gulp.task('clean-vscode-win32-archive', util.rimraf('.build/win32/archive'));
gulp.task('vscode-win32-archive', ['clean-vscode-win32-archive'], archiveWin32Setup);
......@@ -2,7 +2,7 @@
"name": "code-oss-dev-build",
"version": "1.0.0",
"devDependencies": {
"@types/xml2js": "^0.0.33",
"xml2js": "^0.4.17"
"@types/xml2js": "^0.0.33",
"xml2js": "^0.4.17"
}
}
\ No newline at end of file
. .\build\tfs\win32\lib.ps1
# archive
exec { & npm run gulp -- --max_old_space_size=4096 vscode-win32-archive vscode-win32-setup }
\ No newline at end of file
. .\build\tfs\win32\lib.ps1
$Repo = "$(pwd)"
$Root = "$Repo\.."
$Exe = "$Repo\.build\win32\setup\VSCodeSetup.exe"
$Zip = "$Repo\.build\win32\archive\VSCode-win32.zip"
$Build = "$Root\VSCode-win32"
# get version
$PackageJson = Get-Content -Raw -Path "$Build\resources\app\package.json" | ConvertFrom-Json
$Version = $PackageJson.version
$Quality = "$env:VSCODE_QUALITY"
# npm install publish tools
pushd "$Repo\build\tfs"
exec { & npm i }
popd
exec { & node build/tfs/out/publish.js $Quality win32 setup "VSCodeSetup-$Version.exe" $Version true $Exe }
exec { & node build/tfs/out/publish.js $Quality win32-archive archive "VSCode-win32-$Version.zip" $Version true $Zip }
......@@ -17,7 +17,8 @@
"monaco-editor-setup": "node scripts/monaco-editor-setup.js",
"monaco-editor-test": "mocha --only-monaco-editor",
"precommit": "node build/gulpfile.hygiene.js",
"gulp": "gulp"
"gulp": "gulp",
"7z": "7z"
},
"dependencies": {
"applicationinsights": "0.17.1",
......@@ -44,6 +45,7 @@
"yauzl": "2.3.1"
},
"devDependencies": {
"7zip": "0.0.6",
"@types/minimist": "^1.2.0",
"@types/mocha": "^2.2.39",
"@types/semver": "^5.3.30",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册