Skip to content

Commit c145913

Browse files
committed
CDRIVER-1864, CDRIVER-1865 implement RPM package build in Evergeen
1 parent fee96f1 commit c145913

File tree

4 files changed

+39
-15
lines changed

4 files changed

+39
-15
lines changed

.evergreen/build_snapshot_rpm.sh

+16-15
Original file line numberDiff line numberDiff line change
@@ -81,18 +81,18 @@ fi
8181

8282
build_dir=$(basename $(pwd))
8383

84-
sudo mock --verbose -r ${config} --bootstrap-chroot --old-chroot --clean
85-
sudo mock --verbose -r ${config} --bootstrap-chroot --old-chroot --init
84+
sudo mock -r ${config} --bootstrap-chroot --old-chroot --clean
85+
sudo mock -r ${config} --bootstrap-chroot --old-chroot --init
8686
mock_root=$(sudo mock -r ${config} --bootstrap-chroot --old-chroot --print-root-path)
87-
sudo mock --verbose -r ${config} --bootstrap-chroot --old-chroot --install rpmdevtools git rpm-build cmake python GitPython python2-sphinx
88-
sudo mock --verbose -r ${config} --bootstrap-chroot --old-chroot --copyin "$(pwd)" "$(pwd)/${spec_file}" /tmp
87+
sudo mock -r ${config} --bootstrap-chroot --old-chroot --install rpmdevtools git rpm-build cmake python GitPython python2-sphinx
88+
sudo mock -r ${config} --bootstrap-chroot --old-chroot --copyin "$(pwd)" "$(pwd)/${spec_file}" /tmp
8989
if [ ! -f VERSION_CURRENT ]; then
90-
sudo mock --verbose -r ${config} --bootstrap-chroot --old-chroot --cwd "/tmp/${build_dir}" --chroot -- /bin/sh -c "(
90+
sudo mock -r ${config} --bootstrap-chroot --old-chroot --cwd "/tmp/${build_dir}" --chroot -- /bin/sh -c "(
9191
set -o xtrace ;
9292
python build/calc_release_version.py | sed -E 's/([^-]+).*/\1/' > VERSION_CURRENT ;
9393
python build/calc_release_version.py -p > VERSION_RELEASED
9494
)"
95-
sudo mock --verbose -r ${config} --bootstrap-chroot --old-chroot --copyout "/tmp/${build_dir}/VERSION_CURRENT" "/tmp/${build_dir}/VERSION_RELEASED" .
95+
sudo mock -r ${config} --bootstrap-chroot --old-chroot --copyout "/tmp/${build_dir}/VERSION_CURRENT" "/tmp/${build_dir}/VERSION_RELEASED" .
9696
fi
9797

9898
bare_upstream_version=$(sed -E 's/([^-]+).*/\1/' VERSION_CURRENT)
@@ -107,20 +107,21 @@ current_package_version=$(rpmspec --srpm -q --qf "%{version}-%{release}" ${spec_
107107

108108
if [ -n "${current_package_version##*${git_rev}*}" ]; then
109109
echo "Making RPM changelog entry"
110-
sudo mock --verbose -r ${config} --bootstrap-chroot --old-chroot --cwd "/tmp/${build_dir}" --chroot -- rpmdev-bumpspec --comment="Built from Git Snapshot." --userstring="Test User <[email protected]>" --new="${snapshot_version}%{?dist}" ${spec_file}
110+
sudo mock -r ${config} --bootstrap-chroot --old-chroot --cwd "/tmp/${build_dir}" --chroot -- rpmdev-bumpspec --comment="Built from Git Snapshot." --userstring="Test User <[email protected]>" --new="${snapshot_version}%{?dist}" ${spec_file}
111111
fi
112112

113-
sudo mock --verbose -r ${config} --bootstrap-chroot --old-chroot --copyout "/tmp/${build_dir}/${spec_file}" ..
113+
sudo mock -r ${config} --bootstrap-chroot --old-chroot --copyout "/tmp/${build_dir}/${spec_file}" ..
114114

115-
sudo mock --verbose -r ${config} --bootstrap-chroot --old-chroot --cwd "/tmp/${build_dir}" --chroot -- /bin/sh -c "(
115+
sudo mock -r ${config} --bootstrap-chroot --old-chroot --cwd "/tmp/${build_dir}" --chroot -- /bin/sh -c "(
116116
set -o xtrace ;
117117
[ -d cmake-build ] || mkdir cmake-build ;
118118
cd cmake-build ;
119119
/usr/bin/cmake -DENABLE_MAN_PAGES=ON -DENABLE_HTML_DOCS=ON -DENABLE_ZLIB=BUNDLED -DENABLE_BSON=ON .. ;
120120
make -j 8 dist
121121
)"
122122

123-
sudo mock --verbose -r ${config} --bootstrap-chroot --old-chroot --copyout "/tmp/${build_dir}/cmake-build/${package}*.tar.gz" cmake-build
123+
[ -d cmake-build ] || mkdir cmake-build
124+
sudo mock -r ${config} --bootstrap-chroot --old-chroot --copyout "/tmp/${build_dir}/cmake-build/${package}*.tar.gz" cmake-build
124125

125126
[ -d ~/rpmbuild/SOURCES ] || mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
126127
mv cmake-build/${package}*.tar.gz ~/rpmbuild/SOURCES/
@@ -129,21 +130,21 @@ echo "Building source RPM ..."
129130
rpmbuild -bs ${spec_file}
130131
echo "Building binary RPMs ..."
131132
mock_result=$(readlink -f ../mock-result)
132-
sudo mock --verbose --resultdir="${mock_result}" --bootstrap-chroot --old-chroot -r ${config} --no-clean --no-cleanup-after --rebuild ~/rpmbuild/SRPMS/${package}-${snapshot_version}*.src.rpm
133-
sudo mock --verbose -r ${config} --bootstrap-chroot --old-chroot --copyin "${mock_result}" /tmp
133+
sudo mock --resultdir="${mock_result}" --bootstrap-chroot --old-chroot -r ${config} --no-clean --no-cleanup-after --rebuild ~/rpmbuild/SRPMS/${package}-${snapshot_version}*.src.rpm
134+
sudo mock -r ${config} --bootstrap-chroot --old-chroot --copyin "${mock_result}" /tmp
134135

135-
sudo mock --verbose -r ${config} --bootstrap-chroot --old-chroot --cwd "/tmp/${build_dir}" --chroot -- /bin/sh -c "(
136+
sudo mock -r ${config} --bootstrap-chroot --old-chroot --cwd "/tmp/${build_dir}" --chroot -- /bin/sh -c "(
136137
set -o xtrace &&
137138
rpm -Uvh ../mock-result/*.rpm &&
138139
gcc -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -o example-client src/libmongoc/examples/example-client.c -lmongoc-1.0 -lbson-1.0
139140
)"
140141

141142
if [ ! -e "${mock_root}/tmp/${build_dir}/example-client" ]; then
142143
echo "Example was not built!"
143-
sudo mock --verbose -r ${config} --bootstrap-chroot --old-chroot --clean
144+
sudo mock -r ${config} --bootstrap-chroot --old-chroot --clean
144145
exit 1
145146
fi
146147

147-
sudo mock --verbose -r ${config} --bootstrap-chroot --old-chroot --clean
148+
sudo mock -r ${config} --bootstrap-chroot --old-chroot --clean
148149
(cd "${mock_result}" ; tar zcvf ../rpm.tar.gz *.rpm)
149150

.evergreen/config.yml

+15
Original file line numberDiff line numberDiff line change
@@ -1160,6 +1160,19 @@ tasks:
11601160
- command: s3.put
11611161
params: {aws_key: '${aws_key}', aws_secret: '${aws_secret}', remote_file: '${project}/${branch_name}/mongo-c-driver-debian-packages-${CURRENT_VERSION}.tar.gz',
11621162
bucket: mciuploads, permissions: public-read, local_file: deb.tar.gz, content_type: '${content_type|application/x-gzip}'}
1163+
- name: rpm-package-build
1164+
commands:
1165+
- command: shell.exec
1166+
type: test
1167+
params:
1168+
working_dir: mongoc
1169+
script: |-
1170+
set -o errexit
1171+
set -o xtrace
1172+
sh .evergreen/build_snapshot_rpm.sh
1173+
- command: s3.put
1174+
params: {aws_key: '${aws_key}', aws_secret: '${aws_secret}', remote_file: '${project}/${branch_name}/mongo-c-driver-rpm-packages-${CURRENT_VERSION}.tar.gz',
1175+
bucket: mciuploads, permissions: public-read, local_file: rpm.tar.gz, content_type: '${content_type|application/x-gzip}'}
11631176
- name: install-uninstall-check-mingw
11641177
depends_on: {name: make-release-archive, variant: releng}
11651178
commands:
@@ -5072,6 +5085,8 @@ buildvariants:
50725085
- debug-compile-no-counters
50735086
- compile-tracing
50745087
- debian-package-build
5088+
- name: rpm-package-build
5089+
distros: [rhel70]
50755090
- link-with-cmake
50765091
- abi-compliance-check
50775092
- link-with-cmake-ssl

build/evergreen_config_lib/tasks.py

+6
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,12 @@ def __init__(self, task_name, extra_commands, orchestration=True, **kwargs):
373373
s3_put(local_file='deb.tar.gz',
374374
remote_file='${branch_name}/mongo-c-driver-debian-packages-${CURRENT_VERSION}.tar.gz',
375375
content_type='${content_type|application/x-gzip}')]),
376+
NamedTask('rpm-package-build',
377+
commands=[
378+
shell_exec('sh .evergreen/build_snapshot_rpm.sh'),
379+
s3_put(local_file='rpm.tar.gz',
380+
remote_file='${branch_name}/mongo-c-driver-rpm-packages-${CURRENT_VERSION}.tar.gz',
381+
content_type='${content_type|application/x-gzip}')]),
376382
NamedTask('install-uninstall-check-mingw',
377383
depends_on=OD([('name', 'make-release-archive'),
378384
('variant', 'releng')]),

build/evergreen_config_lib/variants.py

+2
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ def android(abi):
9797
'debug-compile-no-counters',
9898
'compile-tracing',
9999
'debian-package-build',
100+
OD([('name', 'rpm-package-build'),
101+
('distros', ['rhel70'])]),
100102
'link-with-cmake',
101103
'abi-compliance-check',
102104
'link-with-cmake-ssl',

0 commit comments

Comments
 (0)