Skip to content

Commit

Permalink
add job to extract from values from xml
Browse files Browse the repository at this point in the history
  • Loading branch information
Anton Bayer authored and Anton Bayer committed May 27, 2016
1 parent a6408ad commit 573b183
Show file tree
Hide file tree
Showing 5 changed files with 90 additions and 10 deletions.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
jobs-parsing
jobs-upload
jobs-download
node_modules
node_modules
3 changes: 2 additions & 1 deletion Gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@

require('./jenkins-download');
require('./jenkins-upload');
require('./gitlab-webhook');
require('./gitlab-webhook');
require('./jenkins-merge-verifier-parsing');
59 changes: 59 additions & 0 deletions jenkins-merge-verifier-parsing.js
Original file line number Diff line number Diff line change
@@ -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();
});
29 changes: 21 additions & 8 deletions jenkins-upload.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,23 +32,34 @@ gulp.task('jenkinsUpload', function() {

fs.readdir("jobs-upload", function(err, files) {

for (var i = 0;i<files.length;i++) {
getFile(files[i]);
}
if (err){
return console.log(err);
}

if (files.length) {
var callback = function(i) {
i++;
if (i < files.length) {
getFile(files[i], i, callback);
}
};
getFile(files[0], 0, callback);
}

});
}

function getFile(file){
function getFile(file, index, callback){

fs.readFile("jobs-upload/" + file, 'utf8', function(err, data) {
if (err){
return console.log(err);
}
checkJob(replacePlaceholder(file.replace(".xml", "")), replacePlaceholder(data));
checkJob(replacePlaceholder(file.replace(".xml", "")), replacePlaceholder(data), index, callback);
});
}

function checkJob(name, content) {
function checkJob(name, content, index, callback) {

jenkins.job.exists(name, function(err, exists) {
if (err) throw err;
Expand All @@ -62,19 +73,21 @@ gulp.task('jenkinsUpload', function() {
});
}

function createJob(name, content) {
function createJob(name, content, index, callback) {

jenkins.job.create(name, content, function(err) {
if (err) throw err;
console.log(name + " created.");
callback(index);
});
}

function updateJob(name, content) {
function updateJob(name, content, index, callback) {

jenkins.job.config(name, content, function(err) {
if (err) throw err;
console.log(name + " updated.");
callback(index);
});
}

Expand Down
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@
"dependencies": {
"gulp": "3.9.1",
"jenkins": "0.17.0",
"gitlab": "1.6.0"
"gitlab": "1.6.0",
"xml2js": "0.4.16"
},
"main": "Gulpfile.js",
"scripts": {
"jenkins-upload": "gulp jenkinsUpload",
"jenkins-download": "gulp jenkinsDownload",
"gitlab-webhook": "gulp gitlabWebhook",
"gitlab-jenkins-merge-verifier-parsing": "gulp jenkinsMergeVerifierParsing",
"start": "gulp jenkinsDownload"
},
"devDependencies": {},
Expand Down

0 comments on commit 573b183

Please sign in to comment.