diff --git a/build/parameters.js b/build/parameters.js index 40c6ce11..d7197f75 100644 --- a/build/parameters.js +++ b/build/parameters.js @@ -29,6 +29,7 @@ class build { get buildRepositoryProvider() { return process.env.BUILD_REPOSITORY_PROVIDER; } get buildRepositoryTfvcWorkspace() { return process.env.BUILD_REPOSITORY_TFVC_WORKSPACE; } get buildRepositoryUri() { return process.env.BUILD_REPOSITORY_URI; } + get buildRequestedFor() { return process.env.BUILD_REQUESTEDFOR; } get buildRequestedForEmail() { return process.env.BUILD_REQUESTEDFOREMAIL; } get buildRequestedForId() { return process.env.BUILD_REQUESTEDFORID; } get buildSourceBranch() { return process.env.BUILD_SOURCEBRANCHNAME; } diff --git a/gulpfile.js b/gulpfile.js index 0f53a0b9..deba2e50 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -32,7 +32,7 @@ function build(done) { if ((!!params.build.buildReason.match(/IndividualCI/ig) || !!params.build.buildReason.match(/BatchedCI/ig)) && !!params.build.buildSourceBranch.replace(/refs\/heads\/(feature\/)?/i, '').match(/master/ig)) { console.log('Running Azure DevOps Release Build'); - gulp.series(printVersion, adoPrep, toolInstall, lernaBuild, lernaPublish, systemPublish)(done); + gulp.series(printVersion, adoPrep, toolInstall, lernaBuild, lernaPublish, systemPublish, gitCommit )(done); } else if (!!params.build.buildReason.match(/PullRequest/ig)) { @@ -72,6 +72,20 @@ function conditions(done) { done(); } +function gitCommit(done) { + var branchName = params.build.buildSourceBranch.replace(/refs\/heads\/(feature\/)?/i, ''); + var gitScript = `sudo git checkout ${branchName} && + sudo git config user.email "${params.build.buildRequestedForEmail}" && + sudo git config user.name "${params.build.buildRequestedFor}" && + sudo git add . && + sudo git commit --author '${params.build.buildRequestedFor} <${params.build.buildRequestedForEmail}>' --message "chore[skip ci]: Update & Commit Locks" && + sudo git tag v${lerna.version} && + sudo git push origin ${branchName} && + sudo git push origin --tags`; + console.log('Git Script: ' + gitScript); + return shell.task(gitScript)(done()); +} + function inlineCoverageSource() { return gulp.src('./coverage/*.html') .pipe(inlinesource({ attribute: false })) @@ -237,6 +251,7 @@ function writeFilenameToFile() { //Tasks exports.build = build; exports.conditions = conditions; +exports.commit = gitCommit; exports.prep = adoPrep; exports.analysis = gulp.series(sonarQube); exports.cleancoverage = cleanCoverage;