File tree 4 files changed +77
-0
lines changed
gating/generate_release_notes
4 files changed +77
-0
lines changed Original file line number Diff line number Diff line change
1
+ #! /bin/bash -xe
2
+
3
+ # This script is run within a docker container to generate release notes.
4
+
5
+ /generate_reno_report.sh $NEW_TAG reno_report.md
6
+ cat reno_report.md > all_notes.md
Original file line number Diff line number Diff line change
1
+ #! /bin/bash -x
2
+
3
+ release=${1}
4
+ out_file=${2}
5
+ err_file=${out_file} .err
6
+ rst_file=${out_file} .rst
7
+
8
+ reno report --branch ${release} --version ${release} --no-show-source --output ${rst_file} & > ${err_file}
9
+ return_code=$?
10
+ cat $err_file
11
+
12
+ if [[ ${return_code} != 0 ]]; then
13
+ if grep -q " KeyError: '${release} '" ${err_file} ; then
14
+ cat > ${out_file} << EOF
15
+ Release Notes
16
+ =============
17
+
18
+ ${release}
19
+ -------------
20
+
21
+ ### No release notes
22
+
23
+ EOF
24
+ return_code=0
25
+ echo " Warning: No new Reno release notes found, this can indicate an issue with the tag."
26
+ else
27
+ echo " Failure: Reno failed to generate the report."
28
+ fi
29
+ else
30
+ pandoc --from rst --to markdown_github < ${rst_file} > ${out_file}
31
+ echo " Success: New Reno release notes found."
32
+ fi
33
+
34
+ exit ${return_code}
Original file line number Diff line number Diff line change
1
+ FROM ubuntu:16.04
2
+ RUN apt-get update && apt-get install -y python-pip build-essential python-dev libssl-dev
3
+ RUN apt-get install -y libffi-dev
4
+ RUN apt-get install -y sudo
5
+ RUN apt-get install -y git-core
6
+ RUN useradd jenkins --shell /bin/bash --create-home --uid 500
7
+ RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
8
+
9
+ RUN apt-get install -y pandoc
10
+
11
+ RUN pip install reno==2.5.1
12
+
13
+ COPY gating/generate_release_notes/generate_release_notes.sh /generate_release_notes.sh
14
+ COPY gating/generate_release_notes/generate_reno_report.sh /generate_reno_report.sh
15
+ CMD /generate_release_notes.sh
Original file line number Diff line number Diff line change
1
+ #! /bin/bash -xe
2
+
3
+ # This script is called by Jenkins to generate release notes.
4
+
5
+ # It runs in docker as it requires pandoc which is an apt package, and
6
+ # apt packages can't be installed on shared Jenkins slaves.
7
+
8
+ docker_tag=" ${BUILD_TAG:- rpco_reno_$(date +% d% m% Y_% H% M)} "
9
+ docker_tag_filtered=" $( tr A-Z a-z <<< $docker_tag | tr -dc ' a-z0-9-_.' ) "
10
+ docker build \
11
+ -f \
12
+ gating/generate_release_notes/release_notes_dockerfile \
13
+ -t $docker_tag_filtered .
14
+ docker run \
15
+ -e " PREVIOUS_TAG=${RE_HOOK_PREVIOUS_VERSION} " \
16
+ -e " NEW_TAG=${RE_HOOK_VERSION} " \
17
+ -e " REPO_URL=${RE_HOOK_REPO_HTTP_URL} " \
18
+ -v " $( pwd) " :" $( pwd) " \
19
+ -w " $( pwd) " \
20
+ $docker_tag_filtered
21
+
22
+ cp all_notes.md " ${RE_HOOK_RELEASE_NOTES} "
You can’t perform that action at this time.
0 commit comments