mirror of
https://github.com/mongodb/mongo.git
synced 2024-12-01 09:32:32 +01:00
69 lines
2.7 KiB
Bash
69 lines
2.7 KiB
Bash
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)"
|
|
. "$DIR/prelude.sh"
|
|
|
|
set -euo pipefail
|
|
|
|
# check that the binaries in dist-test are linked to libvoidstar
|
|
ldd src/dist-test/bin/mongod | grep libvoidstar
|
|
ldd src/dist-test/bin/mongos | grep libvoidstar
|
|
ldd src/dist-test/bin/mongo | grep libvoidstar
|
|
|
|
# prepare the image building environment
|
|
cp -rf src/buildscripts/antithesis/ antithesis
|
|
# due to gitignore, we can't commit a folder called logs, so make it here
|
|
mkdir -p antithesis/topologies/replica_set/{logs,data}/database{1,2,3}
|
|
mkdir -p antithesis/topologies/replica_set/{logs,data}/workload
|
|
mkdir -p antithesis/topologies/sharded_cluster/{logs,data}/database{1,2,3,4,5,6}
|
|
mkdir -p antithesis/topologies/sharded_cluster/{logs,data}/configsvr{1,2,3}
|
|
mkdir -p antithesis/topologies/sharded_cluster/{logs,data}/{mongos,workload}
|
|
|
|
# extract debug symbols into usr/bin and have directory structure mimic Docker container
|
|
mkdir -p antithesis/topologies/sharded_cluster/debug/usr/bin
|
|
tar -zxvf src/mongo-debugsymbols.tgz -C antithesis/topologies/sharded_cluster/debug
|
|
cp antithesis/topologies/sharded_cluster/debug/dist-test/bin/* antithesis/topologies/sharded_cluster/debug/usr/bin
|
|
rm -rf antithesis/topologies/sharded_cluster/debug/dist-test
|
|
|
|
# recompress debug symbols
|
|
tar -czvf antithesis/topologies/sharded_cluster/debug/mongo-debugsymbols.tgz -C antithesis/topologies/sharded_cluster/debug/ usr
|
|
rm -rf antithesis/topologies/sharded_cluster/debug/usr
|
|
|
|
echo "${revision}" > antithesis/topologies/sharded_cluster/data/workload/mongo_version.txt
|
|
|
|
# copy ... to the build context
|
|
# resmoke
|
|
cp -rf src antithesis/base_images/workload/src
|
|
# mongo binary
|
|
cp src/dist-test/bin/mongo antithesis/base_images/workload
|
|
# libvoidstar
|
|
cp /usr/lib/libvoidstar.so antithesis/base_images/workload
|
|
# these aren't needed for the workload image, so get rid of them
|
|
rm -rf antithesis/base_images/workload/src/dist-test
|
|
# all mongodb binaries
|
|
cp -rf src/dist-test antithesis/base_images/mongo_binaries
|
|
cp /usr/lib/libvoidstar.so antithesis/base_images/mongo_binaries/
|
|
|
|
# push images as evergreen-latest-${branch_name}, unless it's a patch
|
|
tag="evergreen-latest-${branch_name}"
|
|
if [ "${is_patch}" = "true" ]; then
|
|
tag="evergreen-patch"
|
|
fi
|
|
|
|
if [ -n "${antithesis_image_tag:-}" ]; then
|
|
echo "Using provided tag: '$antithesis_image_tag' for docker pushes"
|
|
tag=$antithesis_image_tag
|
|
fi
|
|
|
|
cd antithesis/base_images/mongo_binaries
|
|
sudo docker build . -t mongo-binaries:$tag
|
|
|
|
cd ../workload
|
|
sudo docker build . -t workload:$tag
|
|
|
|
cd ../../topologies/replica_set
|
|
sed -i s/evergreen-latest-master/$tag/ docker-compose.yml
|
|
sudo docker build . -t repl-set-config:$tag
|
|
|
|
cd ../sharded_cluster
|
|
sed -i s/evergreen-latest-master/$tag/ docker-compose.yml
|
|
sudo docker build . -t sharded-cluster-config:$tag
|