diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..303e863 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +jobs-parsing +jobs-upload +jobs-download +node_modules +node_modules \ No newline at end of file diff --git a/Gulpfile.js b/Gulpfile.js index 9fbb02b..33b963b 100644 --- a/Gulpfile.js +++ b/Gulpfile.js @@ -2,4 +2,5 @@ require('./jenkins-download'); require('./jenkins-upload'); -require('./gitlab-webhook'); \ No newline at end of file +require('./gitlab-webhook'); +require('./jenkins-merge-verifier-parsing'); \ No newline at end of file diff --git a/jenkins-merge-verifier-parsing.js b/jenkins-merge-verifier-parsing.js new file mode 100644 index 0000000..54df59f --- /dev/null +++ b/jenkins-merge-verifier-parsing.js @@ -0,0 +1,59 @@ +"use strict"; + +var gulp = require('gulp'); +var jenkinsProperties = require('./jenkins-properties'); +var jenkins = require('jenkins')(jenkinsProperties.connection); +var fs = require('fs'); +var parseString = require('xml2js').parseString; + +gulp.task('jenkinsMergeVerifierParsing', function() { + + var output = ""; + + function getAllJobs() { + + fs.readdir("jobs-parsing", function(err, files) { + + if (err){ + return console.log(err); + } + + if (files.length) { + var callback = function(i) { + i++; + if (i < files.length) { + parseJob(files[i], i, callback); + } + else { + console.log(output); + } + }; + parseJob(files[0], 0, callback); + } + }); + } + + function parseJob(file, index, callback) { + + fs.readFile("jobs-parsing/" + file, 'utf8', function(err, data) { + if (err){ + return console.log(err); + } + parseString(data, {trim: true}, function (err, result) { + + var repo = result['maven2-moduleset'].scm[0].userRemoteConfigs[0]['hudson.plugins.git.UserRemoteConfig'][0].url[0] + .replace(jenkinsProperties.sshGitPrefix, '').replace(jenkinsProperties.sshGitPostfix, '').split('/'); + + var projectName = file.replace('-merge-request-verifier.xml',''); + + var artId = result['maven2-moduleset'].rootModule[0].artifactId[0]; + var groupId = result['maven2-moduleset'].rootModule[0].groupId[0]; + + output += "ArtId:" + artId + ";GroupId:" + groupId + ";ProjectName;" + projectName + ";Namespace:" + repo[0] + ";Repo:" + repo[1] + "\n"; + callback(index); + }); + }); + } + + getAllJobs(); +}); \ No newline at end of file diff --git a/jenkins-upload.js b/jenkins-upload.js index b7d3171..6962743 100644 --- a/jenkins-upload.js +++ b/jenkins-upload.js @@ -32,23 +32,34 @@ gulp.task('jenkinsUpload', function() { fs.readdir("jobs-upload", function(err, files) { - for (var i = 0;i