浏览代码

Merge branch 'new-deployment'

tags/v1.6.0
Sauli Tähkäpää 7 年前
父节点
当前提交
241f09c125
共有 3 个文件被更改,包括 61 次插入5 次删除
  1. 1
    2
      gulpfile.js
  2. 3
    3
      package.json
  3. 57
    0
      tasks/cdn.js

+ 1
- 2
gulpfile.js 查看文件

@@ -2,7 +2,6 @@
var gulp = require('gulp');
require('require-dir')('./tasks');
var args = require('yargs').argv;
var git = require('gulp-git');

gulp.task('default', function() {
console.log('\n Use:\n gulp <stage|deploy[:cdn]>|<zip>\n');
@@ -10,4 +9,4 @@ gulp.task('default', function() {

gulp.task('clean', ['clean:cdn', 'clean:zip']);

gulp.task('deploy', ['deploy:cdn']);
gulp.task('deploy', ['deploy:cdn']);

+ 3
- 3
package.json 查看文件

@@ -6,10 +6,10 @@
"license": "Apache-2.0",
"dependencies": {
"bower": "latest",
"fs-extra": "latest",
"gulp": "latest",
"fs-extra": "2.0.x",
"gulp": "^3.9.1",
"gulp-add-src": "latest",
"gulp-git": "latest",
"gulp-git": "1.14.x",
"gulp-json-editor": "latest",
"gulp-markdown": "^1.0.0",
"gulp-modify": "^0.1.1",

+ 57
- 0
tasks/cdn.js 查看文件

@@ -8,6 +8,7 @@ var modify = require('gulp-modify');
var rsync = require('gulp-rsync');
var gutil = require('gulp-util');
var args = require('yargs').argv;
var git = require('gulp-git');

var stagingBasePath = config.paths.staging.cdn;
var version = config.version;
@@ -91,3 +92,59 @@ gulp.task('deploy:cdn', ['upload:cdn'], function(done) {
done();
}
});

/* Above are the old tasks to publish the vaadin-core-elements package, below the tasks to publish a single element from a specific tag/branch. Sorry about the poor naming :-) */

gulp.task('cdn:arguments', function(done) {
common.checkArguments(['element', 'tag']);
args.folder = args.tag.replace(/^v/g, '');
stagingPath = path.join(process.cwd(), stagingBasePath, args.element, args.folder);
done();
});

gulp.task('cdn:clone', ['clean:cdn', 'cdn:arguments'], function(done) {
git.clone('https://github.com/vaadin/' + args.element, {args: '-b ' + args.tag + ' ./target/cdn/' + args.element + '/' + args.folder }, function (err) {
if (err) throw err;
done();
});
});

gulp.task('cdn:install', ['cdn:arguments', 'cdn:clone'], function() {
return bower({
cwd: stagingPath,
forceLatest: true,
cmd: 'install'
});
});

gulp.task('cdn:stage', ['cdn:arguments', 'cdn:install'], function() {
return gulp.src([stagingPath + '/**/*.html', '!**/bower_components/**'])
.pipe(modify({
fileModifier: function(file, contents) {
// magic regex trying to change import paths from:
// ../foo/foo.html to bower_components/foo/foo.html
// ../../foo/foo.html to ../bower_components/foo/foo.html
// ../my-element.html stays as it is.
contents = contents.replace(new RegExp(/([href|src].+)((\.\.\/)((?!bower_components|\.\.).+\/.+))/g), '$1bower_components/$4');
return contents;
}
}))
.pipe(gulp.dest(stagingPath));
});

gulp.task('cdn:upload', ['cdn:stage'], function() {
common.checkArguments(['cdnUsername', 'cdnDestination']);
var destination = path.join(args.cdnDestination, args.element, args.folder);
gutil.log('Uploading to cdn (rsync): ' + stagingPath + ' -> ' + args.cdnUsername + '@' + host + ':' + destination);
return gulp.src(stagingPath)
.pipe(rsync({
username: args.cdnUsername,
hostname: host,
root: stagingPath,
emptyDirectories: false,
recursive: true,
clean: true,
silent: true,
destination: destination
}));
});

正在加载...
取消
保存