6f42692cf9fd96a496102d44078b953c512c2fbe
[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 # shellcheck disable=SC1090
17 source ~/lf-env.sh
18
19 lf-activate-venv "git-review==1.28"
20
21 RELEASE=${RELEASE:-$(echo "$GERRIT_EVENT_COMMENT_TEXT" | base64 -d | grep generate-release-notes | awk '{print $2}')}
22 if [ -z "$RELEASE" ]; then
23     echo "ERROR: The RELEASE variable is not set."
24     exit 1
25 fi
26
27 ./scripts/release-notes-generator.sh "$RELEASE"
28
29 # Archive the notes
30 if [ -f  "$WORKSPACE/release-notes.rst" ]; then
31     mkdir -p "$WORKSPACE/archives"
32     cp -f "$WORKSPACE/release-notes.rst" "$WORKSPACE/archives/${RELEASE,,}"
33 fi
34
35 # Generate a docs patch for the notes
36 DOCS_DIR=$(mktemp -d)
37 git clone -b "$GERRIT_BRANCH" https://git.opendaylight.org/gerrit/docs.git "$DOCS_DIR"
38 cd "$DOCS_DIR" || exit 1
39 cp "$WORKSPACE/release-notes.rst" "docs/release-notes/release-notes-${RELEASE,,}.rst"
40 sed -i -e '$a     release-notes-'"${RELEASE,,}"'' "docs/release-notes/index.rst"
41 git add docs/release-notes/
42
43 GERRIT_COMMIT_MESSAGE="Update release notes for $RELEASE"
44 GERRIT_TOPIC="autogenerate-release-notes"
45 CHANGE_ID=$(ssh -p 29418 "jenkins-$SILO@git.opendaylight.org" gerrit query \
46                limit:1 owner:self is:open project:docs \
47                message:"$GERRIT_COMMIT_MESSAGE" \
48                topic:"$GERRIT_TOPIC" | \
49                grep 'Change-Id:' | \
50                awk '{{ print $2 }}')
51
52 if [ -z "$CHANGE_ID" ]; then
53     git commit -sm "$GERRIT_COMMIT_MESSAGE"
54 else
55     git commit -sm "$GERRIT_COMMIT_MESSAGE" -m "Change-Id: $CHANGE_ID"
56 fi
57
58 git status
59 git remote add gerrit "ssh://jenkins-$SILO@git.opendaylight.org:29418/docs.git"
60
61 # Don't fail the build if this command fails because it's possible that there
62 # is no changes since last update.
63 git review --yes -t "$GERRIT_TOPIC" || true