mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Git: Precomit hook slimmed down
This commit is contained in:
@@ -152,6 +152,7 @@
|
|||||||
"test": "grunt test",
|
"test": "grunt test",
|
||||||
"tslint": "tslint -c tslint.json --project tsconfig.json",
|
"tslint": "tslint -c tslint.json --project tsconfig.json",
|
||||||
"typecheck": "tsc --noEmit",
|
"typecheck": "tsc --noEmit",
|
||||||
|
"typecheckPackages": "yarn workspaces run typecheck",
|
||||||
"jest": "jest --notify --watch",
|
"jest": "jest --notify --watch",
|
||||||
"e2e-tests": "jest --runInBand --config=jest.config.e2e.js",
|
"e2e-tests": "jest --runInBand --config=jest.config.e2e.js",
|
||||||
"api-tests": "jest --notify --watch --config=devenv/e2e-api-tests/jest.js",
|
"api-tests": "jest --notify --watch --config=devenv/e2e-api-tests/jest.js",
|
||||||
|
|||||||
@@ -7,7 +7,8 @@ var path = require('path') ;
|
|||||||
var tsProjectPath = path.resolve(__dirname, '../tsconfig.json');
|
var tsProjectPath = path.resolve(__dirname, '../tsconfig.json');
|
||||||
|
|
||||||
require('ts-node').register({
|
require('ts-node').register({
|
||||||
project: tsProjectPath
|
project: tsProjectPath,
|
||||||
|
transpileOnly: true
|
||||||
});
|
});
|
||||||
|
|
||||||
require('../src/cli/index.ts').run(true);
|
require('../src/cli/index.ts').run(true);
|
||||||
|
|||||||
@@ -12,15 +12,6 @@ const simpleGit = require('simple-git/promise')(process.cwd());
|
|||||||
interface PrecommitOptions {}
|
interface PrecommitOptions {}
|
||||||
|
|
||||||
const tasks = {
|
const tasks = {
|
||||||
lint: {
|
|
||||||
sass: ['newer:sasslint'],
|
|
||||||
core: ['newer:exec:tslintRoot'],
|
|
||||||
gui: ['newer:exec:tslintPackages'],
|
|
||||||
},
|
|
||||||
typecheck: {
|
|
||||||
core: ['newer:exec:typecheckRoot'],
|
|
||||||
gui: ['newer:exec:typecheckPackages'],
|
|
||||||
},
|
|
||||||
test: {
|
test: {
|
||||||
lint: {
|
lint: {
|
||||||
ts: ['no-only-tests'],
|
ts: ['no-only-tests'],
|
||||||
@@ -43,17 +34,12 @@ const precommitRunner: TaskRunner<PrecommitOptions> = async () => {
|
|||||||
file => file.path.match(/^[a-zA-Z0-9\_\-\/]+(\.scss)$/g) || file.path.indexOf('.sass-lint.yml') > -1
|
file => file.path.match(/^[a-zA-Z0-9\_\-\/]+(\.scss)$/g) || file.path.indexOf('.sass-lint.yml') > -1
|
||||||
);
|
);
|
||||||
|
|
||||||
const tsFiles = status.files.filter(file => file.path.match(/^[a-zA-Z0-9\_\-\/]+(\.(ts|tsx))$/g));
|
|
||||||
const testFiles = status.files.filter(file => file.path.match(/^[a-zA-Z0-9\_\-\/]+(\.test.(ts|tsx))$/g));
|
const testFiles = status.files.filter(file => file.path.match(/^[a-zA-Z0-9\_\-\/]+(\.test.(ts|tsx))$/g));
|
||||||
const goTestFiles = status.files.filter(file => file.path.match(/^[a-zA-Z0-9\_\-\/]+(\_test.go)$/g));
|
const goTestFiles = status.files.filter(file => file.path.match(/^[a-zA-Z0-9\_\-\/]+(\_test.go)$/g));
|
||||||
const grafanaUiFiles = tsFiles.filter(file => file.path.indexOf('grafana-ui') > -1);
|
|
||||||
const affectedNodeVersionFiles = status.files
|
const affectedNodeVersionFiles = status.files
|
||||||
.filter(file => nodeVersionFiles.indexOf(file.path) !== -1)
|
.filter(file => nodeVersionFiles.indexOf(file.path) !== -1)
|
||||||
.map(f => f.path);
|
.map(f => f.path);
|
||||||
|
|
||||||
const grafanaUIFilesChangedOnly = tsFiles.length > 0 && tsFiles.length - grafanaUiFiles.length === 0;
|
|
||||||
const coreFilesChangedOnly = tsFiles.length > 0 && grafanaUiFiles.length === 0;
|
|
||||||
|
|
||||||
const taskPaths = [];
|
const taskPaths = [];
|
||||||
|
|
||||||
if (affectedNodeVersionFiles.length > 0) {
|
if (affectedNodeVersionFiles.length > 0) {
|
||||||
@@ -72,16 +58,6 @@ const precommitRunner: TaskRunner<PrecommitOptions> = async () => {
|
|||||||
taskPaths.push('test.lint.go');
|
taskPaths.push('test.lint.go');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tsFiles.length > 0) {
|
|
||||||
if (grafanaUIFilesChangedOnly) {
|
|
||||||
taskPaths.push('lint.gui', 'typecheck.core', 'typecheck.gui');
|
|
||||||
} else if (coreFilesChangedOnly) {
|
|
||||||
taskPaths.push('lint.core', 'typecheck.core');
|
|
||||||
} else {
|
|
||||||
taskPaths.push('lint.core', 'lint.gui', 'typecheck.core', 'typecheck.gui');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const gruntTasks = flatten(taskPaths.map(path => get(tasks, path)));
|
const gruntTasks = flatten(taskPaths.map(path => get(tasks, path)));
|
||||||
if (gruntTasks.length > 0) {
|
if (gruntTasks.length > 0) {
|
||||||
console.log(chalk.yellow(`Precommit checks: ${taskPaths.join(', ')}`));
|
console.log(chalk.yellow(`Precommit checks: ${taskPaths.join(', ')}`));
|
||||||
@@ -93,6 +69,7 @@ const precommitRunner: TaskRunner<PrecommitOptions> = async () => {
|
|||||||
}
|
}
|
||||||
return task;
|
return task;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(chalk.yellow('Skipping precommit checks, not front-end changes detected'));
|
console.log(chalk.yellow('Skipping precommit checks, not front-end changes detected'));
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user