Merge "Move unimgr Sonar scan to Sonarcloud"
[releng/builder.git] / jjb / autorelease / generate-release-notes.sh
1 #!/bin/bash -l
2 # SPDX-License-Identifier: EPL-1.0
3 ##############################################################################
4 # Copyright (c) 2017 The Linux Foundation and others.
5 #
6 # All rights reserved. This program and the accompanying materials
7 # are made available under the terms of the Eclipse Public License v1.0
8 # which accompanies this distribution, and is available at
9 # http://www.eclipse.org/legal/epl-v10.html
10 ##############################################################################
11 # This script generates Service Release notes and appends them to the release
12 # notes in the docs project and submits a patch.
13
14 set -x
15
16 pip install --user --quiet --upgrade git-review
17
18 RELEASE=${RELEASE:-$(echo "$GERRIT_EVENT_COMMENT_TEXT" | base64 -d | grep generate-release-notes | awk '{print $2}')}
19 if [ -z "$RELEASE" ]; then
20     echo "ERROR: The RELEASE variable is not set."
21     exit 1
22 fi
23
24 ./scripts/release-notes-generator.sh "$RELEASE"
25
26 # Archive the notes
27 if [ -f  "$WORKSPACE/release-notes.rst" ]; then
28     mkdir -p "$WORKSPACE/archives"
29     cp -f "$WORKSPACE/release-notes.rst" "$WORKSPACE/archives/${RELEASE,,}"
30 fi
31
32 # Generate a docs patch for the notes
33 DOCS_DIR=$(mktemp -d)
34 git clone -b "$GERRIT_BRANCH" https://git.opendaylight.org/gerrit/docs.git "$DOCS_DIR"
35 cd "$DOCS_DIR" || exit 1
36 cp "$WORKSPACE/release-notes.rst" "docs/release-notes/release-notes-${RELEASE,,}.rst"
37 git add docs/release-notes/
38
39 GERRIT_COMMIT_MESSAGE="Update release notes for $RELEASE"
40 GERRIT_TOPIC="autogenerate-release-notes"
41 CHANGE_ID=$(ssh -p 29418 "jenkins-$SILO@git.opendaylight.org" gerrit query \
42                limit:1 owner:self is:open project:docs \
43                message:"$GERRIT_COMMIT_MESSAGE" \
44                topic:"$GERRIT_TOPIC" | \
45                grep 'Change-Id:' | \
46                awk '{{ print $2 }}')
47
48 if [ -z "$CHANGE_ID" ]; then
49     git commit -sm "$GERRIT_COMMIT_MESSAGE"
50 else
51     git commit -sm "$GERRIT_COMMIT_MESSAGE" -m "Change-Id: $CHANGE_ID"
52 fi
53
54 git status
55 git remote add gerrit "ssh://jenkins-$SILO@git.opendaylight.org:29418/docs.git"
56
57 # Don't fail the build if this command fails because it's possible that there
58 # is no changes since last update.
59 git review --yes -t "$GERRIT_TOPIC" || true