ci: use tar balls instead of npm install /path

Node 8 actually symlink when installing a path, so using a tar ball forces it
to be more like a real install.
This commit is contained in:
Hans Larsen 2017-06-30 15:10:32 -07:00 committed by Hans
parent 447f9f74be
commit bcd0d01015
5 changed files with 49 additions and 5 deletions

View File

@ -27,7 +27,8 @@ const packages =
packageJson: path.join(pkg.root, 'package.json'),
root: pkg.root,
relative: path.relative(path.dirname(__dirname), pkg.root),
main: path.resolve(pkg.root, 'src/index.ts')
main: path.resolve(pkg.root, 'src/index.ts'),
tar: path.join(distRoot, pkg.name.replace('/', '_') + '.tgz')
};
return packages;
}, {});

View File

@ -68,8 +68,8 @@
"json-loader": "^0.5.4",
"less": "^2.7.2",
"less-loader": "^4.0.2",
"loader-utils": "^1.0.2",
"license-webpack-plugin": "^0.4.3",
"loader-utils": "^1.0.2",
"lodash": "^4.11.1",
"magic-string": "^0.19.0",
"memory-fs": "^0.4.1",
@ -136,6 +136,7 @@
"resolve-bin": "^0.4.0",
"rewire": "^2.5.1",
"spdx-satisfies": "^0.1.3",
"tar": "^3.1.5",
"through": "^2.3.6",
"tree-kill": "^1.0.0",
"ts-node": "^3.0.6",

View File

@ -33,7 +33,7 @@ export default function() {
.then(() => createProject)
.then(() => updateJsonFile('package.json', json => {
Object.keys(packages).forEach(pkgName => {
json['dependencies'][pkgName] = packages[pkgName].dist;
json['dependencies'][pkgName] = packages[pkgName].tar;
});
}))
.then(() => argv['ng2'] ? useNg2() : Promise.resolve())

View File

@ -5,6 +5,7 @@ import {buildSchema} from './build-schema';
const denodeify = require('denodeify');
const glob = denodeify(require('glob'));
const tar = require('tar');
const npmRun = require('npm-run');
@ -31,7 +32,7 @@ function copy(from: string, to: string): Promise<void> {
function rm(p: string): Promise<void> {
path.relative(process.cwd(), p);
p = path.relative(process.cwd(), p);
return new Promise<void>((resolve, reject) => {
fs.unlink(p, err => {
if (err) {
@ -44,6 +45,12 @@ function rm(p: string): Promise<void> {
}
function tarFiles(out: string, dir: string): Promise<void> {
// const files = fs.readdirSync(dir);
return tar.create({ gzip: true, strict: true, portable: true, cwd: dir, file: out }, ['.']);
}
function getDeps(pkg: any): any {
const packageJson = require(pkg.packageJson);
return Object.assign({}, packageJson['dependencies'], packageJson['devDependencies']);
@ -216,10 +223,20 @@ export default function build(packagesToBuild: string[], _opts: any,
const licenseLogger = new Logger('license', logger);
return Promise.all(Object.keys(packages).map(pkgName => {
const pkg = packages[pkgName];
licenseLogger.info(`${pkgName}`);
licenseLogger.info(pkgName);
return copy('LICENSE', path.join(pkg.dist, 'LICENSE'));
}));
})
.then(() => {
logger.info('Tarring all packages...');
const tarLogger = new Logger('license', logger);
return Promise.all(Object.keys(packages).map(pkgName => {
const pkg = packages[pkgName];
tarLogger.info(`${pkgName} => ${pkg.tar}`);
return tarFiles(pkg.tar, pkg.dist);
}));
})
.then(() => process.exit(0), (err) => {
logger.fatal(err);
});

View File

@ -3184,6 +3184,18 @@ minimist@^1.1.3, minimist@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
minipass@^2.0.0, minipass@^2.0.2:
version "2.1.1"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.1.1.tgz#c80c80a3491c180d4071d8f219bd1b4b0284999d"
dependencies:
yallist "^3.0.0"
minizlib@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.0.3.tgz#d5c1abf77be154619952e253336eccab9b2a32f5"
dependencies:
minipass "^2.0.0"
mixin-object@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e"
@ -4945,6 +4957,15 @@ tar@^2.0.0, tar@^2.2.1:
fstream "^1.0.2"
inherits "2"
tar@^3.1.5:
version "3.1.5"
resolved "https://registry.yarnpkg.com/tar/-/tar-3.1.5.tgz#4981e97ab7bad4cb1d5da9232047c9047a681aef"
dependencies:
minipass "^2.0.2"
minizlib "^1.0.3"
mkdirp "^0.5.0"
yallist "^3.0.2"
temp@0.8.3:
version "0.8.3"
resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59"
@ -5454,6 +5475,10 @@ yallist@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
yallist@^3.0.0, yallist@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"
yargs-parser@^4.2.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c"