106 строки
3.5 KiB
JavaScript
106 строки
3.5 KiB
JavaScript
var fs = require('fs');
|
|
var gulp = require('gulp');
|
|
var glob = require('glob');
|
|
var shelljs = require('shelljs');
|
|
|
|
var components;
|
|
var compPaths = glob.sync(`./src/**/`, { silent: true, ignore: [`./src/base/`, `./src/`, './src/common/', './src/getting-started/'] });
|
|
|
|
var branch = 'master';
|
|
var user = process.env.GIT_USER;
|
|
var token = process.env.GIT_TOKEN;
|
|
var user_mail = process.env.GIT_MAIL;
|
|
var is_temp = process.env.IS_TEMP;
|
|
/**
|
|
* Source shipping to gitlap
|
|
*/
|
|
gulp.task('ship-to-gitlap', function (done) {
|
|
console.log('---check----' + user_mail);
|
|
console.log('---user---' + user);
|
|
|
|
shelljs.exec(`git config --global user.email "${user_mail}"`);
|
|
shelljs.exec(`git config --global user.name "${user}"`);
|
|
|
|
var changes = shelljs.exec(`git diff --name-only HEAD^ HEAD`);
|
|
console.log('--changes----' + changes);
|
|
|
|
var changedFileNames = changes.stdout.split('\n');
|
|
console.log('--changedFileNames----' + changedFileNames);
|
|
|
|
console.log('--is_temp----' + is_temp);
|
|
|
|
var cloneRepos = [];
|
|
for (var i = 0; i < changedFileNames.length; i++) {
|
|
var curentRootRepo = changedFileNames[i].split('/')[1];
|
|
// if(curentRootRepo !='workflows'){
|
|
// return
|
|
// }
|
|
if (curentRootRepo != undefined && curentRootRepo !='workflows') {
|
|
cloneRepos.push(curentRootRepo);
|
|
}
|
|
}
|
|
|
|
console.log('--cloneRepos----' + cloneRepos);
|
|
|
|
for (var j = 0; j < cloneRepos.length; j++) {
|
|
var gitPath = 'https://' + user + ':' + token + `@gitlab.syncfusion.com/essential-studio/ej2-${cloneRepos[j]}-razor-docs`;
|
|
console.log('Clone has been started...!');
|
|
var clone = shelljs.exec('git clone ' + gitPath + ' -b ' + branch + ' ' + `./gitlapRepo/ej2-${cloneRepos[j]}-razor-docs`, {
|
|
silent: false
|
|
});
|
|
if (clone.code !== 0) {
|
|
console.log(clone.stderr);
|
|
done();
|
|
return;
|
|
} else {
|
|
console.log('Clone has been completed...!');
|
|
shelljs.cp('-rf', `./src/${cloneRepos[j]}/*`, `./gitlapRepo/ej2-${cloneRepos[j]}-razor-docs/src`);
|
|
shelljs.cd(`./gitlapRepo/ej2-${cloneRepos[j]}-razor-docs`);
|
|
shelljs.exec('git add .');
|
|
shelljs.exec('git pull');
|
|
shelljs.exec('git commit -m \"ci-skip(EJ2-000): source updation from github repo [ci skip]\" --no-verify');
|
|
shelljs.exec('git push');
|
|
shelljs.cd('../../')
|
|
}
|
|
}
|
|
})
|
|
|
|
/**
|
|
* Lint md files in src location
|
|
*/
|
|
gulp.task('lint', function (done) {
|
|
var markdownlint = require('markdownlint');
|
|
components = controlsList();
|
|
var options = {
|
|
files: glob.sync('./src/' + components + '/*.md', { ignore: ['./src/**/api*.md', './src/summary.md', './src/release-notes/*.md'] }),
|
|
config: require('./.markdownlint.json')
|
|
};
|
|
markdownlint(options, function (result, err) {
|
|
if (err && err.toString().length) {
|
|
console.error(err.toString());
|
|
done();
|
|
process.exit(1);
|
|
} else {
|
|
console.log('\n*** Markdown Lint Succeeded ***\n');
|
|
done();
|
|
}
|
|
});
|
|
});
|
|
|
|
// Controls List
|
|
function controlsList() {
|
|
var controls = '**';
|
|
if (true) {
|
|
var ret = '';
|
|
for (var comp of compPaths) {
|
|
ret += comp.replace(/.\/src\//g, '') + '**/,';
|
|
}
|
|
return '{' + ret + '}';
|
|
}
|
|
else if (fs.existsSync('./controlsList.txt')) {
|
|
controls = fs.readFileSync('./controlsList.txt', 'utf8');
|
|
controls = '{' + controls + ',}';
|
|
}
|
|
return controls;
|
|
}
|