build/archive changelog for mdg 03/5703/1
authorMike Marchetti <mmarchetti@sandvine.com>
Fri, 17 Nov 2017 18:38:47 +0000 (13:38 -0500)
committerMike Marchetti <mmarchetti@sandvine.com>
Fri, 17 Nov 2017 20:28:45 +0000 (15:28 -0500)
Change-Id: Ia4f0a11579cd88e53477e7c9047739abc9744bf9
Signed-off-by: Mike Marchetti <mmarchetti@sandvine.com>
jenkins/ci-pipelines/ci_helper.groovy
jenkins/ci-pipelines/ci_stage_2.groovy
jenkins/ci-pipelines/ci_stage_3.groovy
tools/gen-repo.sh
tools/generatechangelog-pipeline.sh [new file with mode: 0755]
tools/generatechangelog.sh

index 21a8373..d058099 100644 (file)
@@ -91,6 +91,12 @@ def archive(artifactory_server,mdg,branch,status) {
     def repo_prefix = 'osm-'
     def uploadSpec = """{
      "files": [
+        {
+          "pattern": "changelog/*",
+          "target": "${repo_prefix}${mdg}/${branch}/${BUILD_NUMBER}/",
+          "props": "${properties}",
+          "flat": false
+        },
         {
           "pattern": "dists/*.gz",
           "target": "${repo_prefix}${mdg}/${branch}/${BUILD_NUMBER}/",
index 7620111..aa4a9f4 100644 (file)
@@ -62,6 +62,8 @@ def ci_pipeline(mdg,url_prefix,project,branch,refspec,revision,do_stage_3,artifa
     }
 
     stage('Archive') {
+        sh "mkdir changelog"
+        sh "devops/tools/generatechangelog-pipeline.sh > changelog/changelog-${mdg}.html"
         sh(returnStdout:true,  script: 'devops-stages/stage-archive.sh').trim()
         ci_helper.archive(artifactory_server,mdg,branch,'untested')
     }
index 9ea2d7f..6cb706d 100644 (file)
@@ -129,6 +129,12 @@ node("${params.NODE}") {
                 // copy the public key into the release folder
                 // this pulls the key from the home dir of the current user (jenkins)
                 sh "cp ~/${REPO_KEY_NAME} ."
+
+                // merge the change logs
+                sh """
+                   rm -f changelog/osm-changelog.html
+                   [ -d changelog ] && for mdgchange in \$(ls changelog); do cat changelog/\$mdgchange >> changelog/osm-changelog.html; done
+                   """
             }
             // start an apache server to serve up the images
             http_server_name = "${container_name}-apache"
index 502b941..b1e768f 100755 (executable)
@@ -113,6 +113,7 @@ mkdir -p $BASE_DIR/dists
 
 cp -R $BUILD_NUMBER/dists/$IN_REPO $BASE_DIR/dists/$OUT_REPO
 cp -R $BUILD_NUMBER/pool $BASE_DIR/
+[ -d "$BUILD_NUMBER/changelog" ] && cp -R $BUILD_NUMBER/changelog $BASE_DIR/
 
 cd $BASE_DIR
 
diff --git a/tools/generatechangelog-pipeline.sh b/tools/generatechangelog-pipeline.sh
new file mode 100755 (executable)
index 0000000..83a767a
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+REPO_NAME=$(basename $(git config --get remote.origin.url) | cut -d'.' -f1)
+# get the latest tag
+TAG_END="HEAD"
+TAG_START=$(git tag | sort -Vr | head -1)
+git pull --tags origin master &> /dev/null
+echo "<h1>$REPO_NAME Changelog</h1>"
+echo "<h2>tag: ${TAG_START} -> ${TAG_END}</h2>"
+git log --pretty=format:"<li> <a href=https://osm.etsi.org/gitweb/?p=osm/$i.git;a=commitdiff;h=%H>%h &bull;</a> %s</li> " --reverse  ${TAG_START}..${TAG_END}
index 33a5302..5fa902e 100755 (executable)
@@ -23,21 +23,24 @@ if [ -z "$list" ]; then
     exit 1
 fi
 
+TEMPDIR=$(mktemp -d)
+
 echo "<h1>OSM Changelog</h1>" >> $OUTFILE
 for i in $list; do
+    REPODIR=$TEMPDIR/$i
     echo
     echo $i
-    if [ ! -d $i ]; then
-        git clone https://osm.etsi.org/gerrit/osm/$i
+    if [ ! -d $REPODIR ]; then
+        git clone https://osm.etsi.org/gerrit/osm/$i $REPODIR
     fi
-    git -C $i checkout master
-    git -C $i pull --rebase
-    git -C $i fetch --tags
-    TAG_START=$(git -C $i tag | sort -Vr | head -2 | sort -V | head -1)
-    TAG_END=$(git -C $i tag | sort -Vr | head -1)
+    git -C $REPODIR checkout master
+    git -C $REPODIR pull --rebase
+    git -C $REPODIR fetch --tags
+    TAG_START=$(git -C $REPODIR tag | sort -Vr | head -2 | sort -V | head -1)
+    TAG_END=$(git -C $REPODIR tag | sort -Vr | head -1)
     echo "<h2>Changes for $i tag: ${TAG_START}..${TAG_END}</h2>" >> $OUTFILE
     #git -C $i log --pretty=format:"* %h; author: %cn; date: %ci; subject:%s" ${TAG_START}..${TAG_END} >> $OUTFILE
-    git -C $i log --pretty=format:"<li> <a href=https://osm.etsi.org/gitweb/?p=osm/$i.git;a=commitdiff;h=%H>%h &bull;</a> %s</li> " --reverse  ${TAG_START}..${TAG_END} >> $OUTFILE
+    git -C $REPODIR log --pretty=format:"<li> <a href=https://osm.etsi.org/gitweb/?p=osm/$i.git;a=commitdiff;h=%H>%h &bull;</a> %s</li> " --reverse  ${TAG_START}..${TAG_END} >> $OUTFILE
     echo "" >> $OUTFILE
 done