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