Pushes all committed changes to a remote repository.
It will push all committed changes (you can use git.commit
from gulp-git
for that) to the specified repository.
var gulp = require('gulp');
var bump = require('gulp-bump');
var git = require('gulp-git');
var push = require('gulp-git-push');
gulp.task('bump', function() {
return gulp.src('./package.json')
// bump package.json version
.pipe(bump({type: 'patch'}))
// save bumped file into filesystem
.pipe(gulp.dest('./'))
// commit changes
.pipe(git.commit('bump version'))
// push local changes to repository
.pipe(push({
repository: 'origin',
refspec: 'HEAD'
}));
});
var gulp = require('gulp');
var bump = require('gulp-bump');
var git = require('gulp-git');
var gutil = require('gulp-util');
var filter = require('gulp-filter');
var exec = require('child_process').exec;
var argv = require('yargs')
.option('type', {
alias: 't',
choices: ['patch', 'minor', 'major']
}).argv;
var tag = require('gulp-tag-version');
var push = require('gulp-git-push');
/**
* Bumping and tagging version, and pushing changes to repository.
*
* You can use the following commands:
* gulp release --type=patch # makes: v1.0.0 → v1.0.1
* gulp release --type=minor # makes: v1.0.0 → v1.1.0
* gulp release --type=major # makes: v1.0.0 → v2.0.0
*
* Please read http://semver.org/ to understand which type to use.
*
* The 'gulp release' task is an example of a release task for a NPM package.
* This task will run 'publish' as a dependent and 'bump'.
**/
gulp.task('bump', function() {
return gulp.src(['./package.json', './bower.json'])
// bump package.json and bowser.json version
.pipe(bump({
type: argv.type || 'patch'
}))
// save the bumped files into filesystem
.pipe(gulp.dest('./'))
// commit the changed files
.pipe(git.commit('bump version'))
// filter one file
.pipe(filter('package.json'))
// create tag based on the filtered file
.pipe(tag())
// push changes into repository
.pipe(push({
repository: 'origin',
refspec: 'HEAD'
}))
});
gulp.task('publish', ['bump'], function (done) {
// run npm publish terminal command
exec('npm publish',
function (error, stdout, stderr) {
if (stderr) {
gutil.log(gutil.colors.red(stderr));
} else if (stdout) {
gutil.log(gutil.colors.green(stdout));
}
// execute callback when its done
if (done) {
done();
}
}
);
});
gulp.task('release', ['publish'], function () {});
Type: String
Default: origin
The 'remote' repository for push operation.
Type: String
Default: HEAD
Specify what destination ref to update with what source object.
Type: object
Default: { args: '--follow-tags' }
- this gulp plugin is based on gulp-tag-version by ikari-pl
- @stevelacy by gulp-bump and gulp-git