Skip to content

Commit 9cffced

Browse files
authored
Merge pull request #374 from mancdaz/master-rc
RE-831 Include Reno notes in release notes
2 parents 6156556 + 93294e4 commit 9cffced

File tree

4 files changed

+77
-0
lines changed

4 files changed

+77
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
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 numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
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 numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
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

gating/generate_release_notes/run

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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}"

0 commit comments

Comments
 (0)