build/archive changelog for mdg
Change-Id: Ia4f0a11579cd88e53477e7c9047739abc9744bf9
Signed-off-by: Mike Marchetti <mmarchetti@sandvine.com>
diff --git a/jenkins/ci-pipelines/ci_helper.groovy b/jenkins/ci-pipelines/ci_helper.groovy
index 21a8373..d058099 100644
--- a/jenkins/ci-pipelines/ci_helper.groovy
+++ b/jenkins/ci-pipelines/ci_helper.groovy
@@ -92,6 +92,12 @@
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}/",
"props": "${properties}",
diff --git a/jenkins/ci-pipelines/ci_stage_2.groovy b/jenkins/ci-pipelines/ci_stage_2.groovy
index 7620111..aa4a9f4 100644
--- a/jenkins/ci-pipelines/ci_stage_2.groovy
+++ b/jenkins/ci-pipelines/ci_stage_2.groovy
@@ -62,6 +62,8 @@
}
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')
}
diff --git a/jenkins/ci-pipelines/ci_stage_3.groovy b/jenkins/ci-pipelines/ci_stage_3.groovy
index 9ea2d7f..6cb706d 100644
--- a/jenkins/ci-pipelines/ci_stage_3.groovy
+++ b/jenkins/ci-pipelines/ci_stage_3.groovy
@@ -129,6 +129,12 @@
// 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"
diff --git a/tools/gen-repo.sh b/tools/gen-repo.sh
index 502b941..b1e768f 100755
--- a/tools/gen-repo.sh
+++ b/tools/gen-repo.sh
@@ -113,6 +113,7 @@
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
index 0000000..83a767a
--- /dev/null
+++ b/tools/generatechangelog-pipeline.sh
@@ -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 •</a> %s</li> " --reverse ${TAG_START}..${TAG_END}
diff --git a/tools/generatechangelog.sh b/tools/generatechangelog.sh
index 33a5302..5fa902e 100755
--- a/tools/generatechangelog.sh
+++ b/tools/generatechangelog.sh
@@ -23,21 +23,24 @@
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 •</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 •</a> %s</li> " --reverse ${TAG_START}..${TAG_END} >> $OUTFILE
echo "" >> $OUTFILE
done