Proof of concept (buggy).
Last active
August 15, 2019 06:12
-
-
Save dotherightthing/7b4a64c49a2b2ae8572313851b928402 to your computer and use it in GitHub Desktop.
[Bump version strings before tagged commit] #gulp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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