You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
224 lines
5.9 KiB
JavaScript
224 lines
5.9 KiB
JavaScript
4 years ago
|
module.exports = function (grunt) {
|
||
|
|
||
|
require('load-grunt-tasks')(grunt);
|
||
|
|
||
|
// Project configuration.
|
||
|
grunt.initConfig({
|
||
|
pkg: grunt.file.readJSON('package.json'),
|
||
|
|
||
|
composerBin: 'vendor/bin',
|
||
|
|
||
|
shell: {
|
||
|
phpcs: {
|
||
|
options: {
|
||
|
stdout: true
|
||
|
},
|
||
|
command: '<%= composerBin %>/phpcs'
|
||
|
},
|
||
|
|
||
|
phpcbf: {
|
||
|
options: {
|
||
|
stdout: true
|
||
|
},
|
||
|
command: '<%= composerBin %>/phpcbf'
|
||
|
},
|
||
|
|
||
|
phpstan: {
|
||
|
options: {
|
||
|
stdout: true
|
||
|
},
|
||
|
command: '<%= composerBin %>/phpstan analyze .'
|
||
|
},
|
||
|
|
||
|
phpunit: {
|
||
|
options: {
|
||
|
stdout: true
|
||
|
},
|
||
|
command: '<%= composerBin %>/phpunit'
|
||
|
},
|
||
|
},
|
||
|
|
||
|
gitinfo: {
|
||
|
commands: {
|
||
|
'local.tag.current.name': ['name-rev', '--tags', '--name-only', 'HEAD'],
|
||
|
'local.tag.current.nameLong': ['describe', '--tags', '--long']
|
||
|
}
|
||
|
},
|
||
|
|
||
|
clean: {
|
||
|
main: ['dist'], //Clean up build folder
|
||
|
i18n: ['languages/*.mo', 'languages/*.pot']
|
||
|
},
|
||
|
|
||
|
copy: {
|
||
|
// Copy the plugin to a versioned release directory
|
||
|
main: {
|
||
|
src: [
|
||
|
'**',
|
||
|
'!*.xml', '!*.log', //any config/log files
|
||
|
'!node_modules/**', '!Gruntfile.js', '!package.json', '!package-lock.json', //npm/Grunt
|
||
|
'!assets/**', //wp-org assets
|
||
|
'!dist/**', //build directory
|
||
|
'!.git/**', //version control
|
||
|
'!tests/**', '!scripts/**', '!phpunit.xml', '!phpunit.xml.dist', //unit testing
|
||
|
'!vendor/**', '!composer.lock', '!composer.phar', '!composer.json', //composer
|
||
|
'!wordpress/**',
|
||
|
'!.*', '!**/*~', //hidden files
|
||
|
'!CONTRIBUTING.md',
|
||
|
'!README.md',
|
||
|
'!phpcs.xml', '!phpcs.xml.dist', '!phpstan.neon.dist', '!grumphp.yml.dist', // CodeSniffer Configuration.
|
||
|
'!docker-compose.override.yml', // Local Docker Development configuration.
|
||
|
'!codecov.yml', // Code coverage configuration.
|
||
|
'!tools/**', // Local Development/Build tools configuration.
|
||
|
],
|
||
|
dest: 'dist/',
|
||
|
options: {
|
||
|
processContentExclude: ['**/*.{png,gif,jpg,ico,mo}'],
|
||
|
processContent: function (content, srcpath) {
|
||
|
if (srcpath == 'readme.txt' || srcpath == 'openid-connect-generic.php') {
|
||
|
if (grunt.config.get('gitinfo').local.tag.current.name !== 'undefined') {
|
||
|
content = content.replace('{{version}}', grunt.config.get('gitinfo').local.tag.current.name);
|
||
|
} else {
|
||
|
content = content.replace('{{version}}', grunt.config.get('gitinfo').local.tag.current.nameLong);
|
||
|
}
|
||
|
}
|
||
|
return content;
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
},
|
||
|
|
||
|
addtextdomain: {
|
||
|
options: {
|
||
|
textdomain: 'daggerhart-openid-connect-generic', // Project text domain.
|
||
|
},
|
||
|
update_all_domains: {
|
||
|
options: {
|
||
|
updateDomains: true
|
||
|
},
|
||
|
src: ['*.php', '**/*.php', '!node_modules/**', '!tests/**', '!scripts/**', '!vendor/**', '!wordpress/**']
|
||
|
},
|
||
|
},
|
||
|
|
||
|
wp_readme_to_markdown: {
|
||
|
dest: {
|
||
|
files: {
|
||
|
'README.md': 'readme.txt'
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
|
||
|
makepot: {
|
||
|
target: {
|
||
|
options: {
|
||
|
domainPath: '/languages', // Where to save the POT file.
|
||
|
exclude: [
|
||
|
'node_modules/.*', //npm
|
||
|
'assets/.*', //wp-org assets
|
||
|
'dist/.*', //build directory
|
||
|
'.git/.*', //version control
|
||
|
'tests/.*', 'scripts/.*', //unit testing
|
||
|
'vendor/.*', //composer
|
||
|
'wordpress/.*',
|
||
|
], // List of files or directories to ignore.
|
||
|
mainFile: 'openid-connect-generic.php', // Main project file.
|
||
|
potFilename: 'openid-connect-generic.pot', // Name of the POT file.
|
||
|
potHeaders: {
|
||
|
poedit: true, // Includes common Poedit headers.
|
||
|
'report-msgid-bugs-to': 'https://github.com/daggerhart/openid-connect-generic/issues',
|
||
|
'x-poedit-keywordslist': true // Include a list of all possible gettext functions.
|
||
|
}, // Headers to add to the generated POT file.
|
||
|
type: 'wp-plugin', // Type of project (wp-plugin or wp-theme).
|
||
|
updateTimestamp: true, // Whether the POT-Creation-Date should be updated without other changes.
|
||
|
updatePoFiles: true // Whether to update PO files in the same directory as the POT file.
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
po2mo: {
|
||
|
plugin: {
|
||
|
src: 'languages/*.po',
|
||
|
expand: true
|
||
|
}
|
||
|
},
|
||
|
|
||
|
checkrepo: {
|
||
|
deploy: {
|
||
|
tagged: true, // Check that the last commit (HEAD) is tagged
|
||
|
clean: true // Check that working directory is clean
|
||
|
}
|
||
|
},
|
||
|
|
||
|
checktextdomain: {
|
||
|
options: {
|
||
|
text_domain: 'daggerhart-openid-connect-generic',
|
||
|
keywords: [
|
||
|
'__:1,2d',
|
||
|
'_e:1,2d',
|
||
|
'_x:1,2c,3d',
|
||
|
'esc_html__:1,2d',
|
||
|
'esc_html_e:1,2d',
|
||
|
'esc_html_x:1,2c,3d',
|
||
|
'esc_attr__:1,2d',
|
||
|
'esc_attr_e:1,2d',
|
||
|
'esc_attr_x:1,2c,3d',
|
||
|
'_ex:1,2c,3d',
|
||
|
'_x:1,2c,3d',
|
||
|
'_n:1,2,4d',
|
||
|
'_nx:1,2,4c,5d',
|
||
|
'_n_noop:1,2,3d',
|
||
|
'_nx_noop:1,2,3c,4d'
|
||
|
],
|
||
|
},
|
||
|
files: {
|
||
|
src: [
|
||
|
'**/*.php',
|
||
|
'!node_modules/**',
|
||
|
'!dist/**',
|
||
|
'!tests/**',
|
||
|
'!vendor/**',
|
||
|
'!wordpress/**',
|
||
|
'!*~',
|
||
|
],
|
||
|
expand: true,
|
||
|
},
|
||
|
},
|
||
|
|
||
|
// Bump version numbers
|
||
|
version: {
|
||
|
class: {
|
||
|
options: {
|
||
|
prefix: "const VERSION = '"
|
||
|
},
|
||
|
src: ['<%= pkg.name %>.php']
|
||
|
},
|
||
|
header: {
|
||
|
options: {
|
||
|
prefix: '\\* Version:\\s+'
|
||
|
},
|
||
|
src: ['<%= pkg.name %>.php']
|
||
|
},
|
||
|
readme: {
|
||
|
options: {
|
||
|
prefix: 'Stable tag:\\s+'
|
||
|
},
|
||
|
src: ['readme.txt']
|
||
|
}
|
||
|
}
|
||
|
|
||
|
});
|
||
|
|
||
|
grunt.registerTask('phpcs', ['shell:phpcs']);
|
||
|
grunt.registerTask('phpcbf', ['shell:phpcbf']);
|
||
|
grunt.registerTask('phpstan', ['shell:phpstan']);
|
||
|
grunt.registerTask('phpunit', ['shell:phpunit']);
|
||
|
grunt.registerTask('i18n', ['addtextdomain', 'makepot', 'po2mo']);
|
||
|
grunt.registerTask('readme', ['wp_readme_to_markdown']);
|
||
|
grunt.registerTask('test', ['checktextdomain']);
|
||
|
grunt.registerTask('build', ['gitinfo', 'test', 'clean', 'i18n', 'readme', 'copy']);
|
||
|
//grunt.registerTask( 'deploy', [ 'checkbranch:master', 'checkrepo', 'build' ] );
|
||
|
grunt.registerTask('deploy', ['checkrepo', 'build']);
|
||
|
|
||
|
};
|
||
|
|