Check the state of repository.
Task will cancel grunt tasks queue when repository state doesn't comply with your requirements. You can look at it as a simple repository linting.
This is a Grunt 0.4 plugin. If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins.
Use npm to install and save the plugin into devDependencies
.
npm install grunt-checkrepo --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-checkrepo');
In your project's Gruntfile, add a section named checkrepo
to the data object passed into grunt.initConfig()
. This
is a multitask task and accepts multiple targets.
grunt.initConfig({
checkrepo: {
foo: {
// Foo target options
},
bar: {
// Bar target options
},
},
});
There are no default options. Each target property is a check that will be run, and its value is a required state.
Type: Object
Will run semver
functions & comparisons against passed version and highest
repo tag. Each object property name is a semver
method, and property value is one argument being passed to it.
Example:
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
checkrepo: {
foo: {
tag: {
valid: '<%= pkg.version %>', // Check if pkg.version is valid semantic version
lt: '<%= pkg.version %>', // Check if highest repo tag is lower than pkg.version
},
}
},
});
Available methods:
valid
, gt
, gte
, lt
, lte
, eq
, neq
Type: Boolean
Checks whether the last commit (HEAD) is or is not already tagged.
Example:
checkrepo: {
foo: {
tagged: true, // Require last commit (HEAD) to be tagged
},
bar: {
tagged: false, // Require last commit (head) to not be tagged
}
}
Type: Boolean
Check whether the repository is clean - has no unstaged changes.
Example:
checkrepo: {
foo: {
clean: true, // Require repo to be clean (no unstaged changes)
},
bar: {
clean: false, // Require repo to be dirty (have unstaged changes)
}
}
Task with all available options:
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
checkrepo: {
foo: {
tag: {
valid: '<%= pkg.version %>', // Check if pkg.version is valid semantic version
gt: '<%= pkg.version %>', // Check if highest repo tag is greater than pkg.version
gte: '<%= pkg.version %>', // Check if highest repo tag is greater or equal to pkg.version
lt: '<%= pkg.version %>', // Check if highest repo tag is lower than pkg.version
lte: '<%= pkg.version %>', // Check if highest repo tag is lower or equal than pkg.version
eq: '<%= pkg.version %>', // Check if highest repo tag is equal to pkg.version
neq: '<%= pkg.version %>', // Check if highest repo tag is not equal to pkg.version
},
tagged: false, // Check if last repo commit (HEAD) is not tagged
clean: true, // Check if the repo working directory is clean
}
},
});