Skip to content

Instantly share code, notes, and snippets.

@dotherightthing
Last active August 15, 2019 06:12
Show Gist options
  • Save dotherightthing/7b4a64c49a2b2ae8572313851b928402 to your computer and use it in GitHub Desktop.
Save dotherightthing/7b4a64c49a2b2ae8572313851b928402 to your computer and use it in GitHub Desktop.
[Bump version strings before tagged commit] #gulp

Bump version strings before tagged commit

Proof of concept (buggy).

/**
* Gulp Task Runner
*/
/* jshint node: true */
/* global require */
// dependencies
var bump = require('gulp-bump');
var filter = require('gulp-filter');
var fs = require('fs'); // used instead of require to prevent caching in watch (require caches)
var semver = require('semver');
// config
var getPackageJson = function () {
return JSON.parse(fs.readFileSync('./package.json', 'utf8'));
};
// bump versions on package/bower/manifest
gulp.task('bump', function () {
log(' ');
log('========== bump version ==========');
log(' ');
// reget package
var pkg = getPackageJson();
// increment version
var newVer = semver.inc(pkg.version, 'patch');
// uses gulp-filter
var jsonFilter = filter('*.json', {restore: true});
var phpFilter = filter('*.php', {restore: true});
var txtFilter = filter('*.txt', {restore: true});
var php_constant = "WPDTRT_GALLERY_VERSION";
log("Please manually bump readme.txt - Stable tag: " + newVer);
log("Please manually bump wpdtrt-gallery.php - define( 'WPDTRT_GALLERY_VERSION', '" + newVer + "' )");
// TODO run composer validate
return gulp.src([
'./bower.json',
'./package.json',
'./package-lock.json',
'./readme.txt',
'./wpdtrt-gallery.php'
])
// bower.json, package.json, package-lock.json
// "Error: Invalid semver: version key "version" is not found in file" if file is empty.
.pipe(jsonFilter)
.pipe(bump({ version: newVer }))
.pipe(gulp.dest('./'))
.pipe(jsonFilter.restore)
// wpdtrt-gallery.php (header)
.pipe(phpFilter)
.pipe(bump())
.pipe(gulp.dest('./'));
//.pipe(phpFilter.restore)
// wpdtrt-gallery.php
// define( 'WPDTRT_GALLERY_VERSION', '1.6.6' );
// TODO Not working
/*
.pipe(phpFilter)
.pipe(bump({
regex: new RegExp( "([<|\'|\"]?"+php_constant+"[>|\'|\"]?[ ]*[:=,]?[ ]*[\'|\"]?[a-z]?)(\\d+\\.\\d+\\.\\d+)(-[0-9A-Za-z\.-]+)?([\'|\"|<]?)", "i" ),
}))
.pipe(gulp.dest('./'))
.pipe(phpFilter.restore)
*/
// readme.txt
// Stable tag: 1.6.6
// TODO Not working
/*
.pipe(txtFilter)
.pipe(bump({
// find a version string with the format key: value
// to match the pair that we would usually pass in
regex: new RegExp( "(Stable\s+tag:\s)+([0-9].[0-9].[0-9]+)" )
}))
.pipe(gulp.dest('./'));
*/
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment