mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2025-01-18 04:58:51 +02:00
1f8931f732
Improve on 7794ab50 by including the build flag files directly into the Makefile as dependencies (even though they are not includes). This simplifies some of the rsync logic and allows make to do what it does best. Also split build flag files into test, harness, and build to reduce rebuilds. Test flags are used to build test.c, harness flags are used to build the rest of the files in the test harness, and build flags are used for the files that are not directly involved in testing.
120 lines
5.9 KiB
Ruby
120 lines
5.9 KiB
Ruby
Vagrant.configure(2) do |config|
|
|
config.vm.provider :virtualbox do |vb|
|
|
vb.memory = 4096
|
|
vb.cpus = 8
|
|
end
|
|
|
|
config.vm.box = "ubuntu/bionic64"
|
|
config.vm.box_version = "20180719.0.0"
|
|
|
|
# vagrant plugin install vagrant-disksize
|
|
config.disksize.size = '64GB'
|
|
|
|
config.vm.provider :virtualbox do |vb|
|
|
vb.name = "pgbackrest-test"
|
|
end
|
|
|
|
# Provision the VM
|
|
config.vm.provision "shell", inline: <<-SHELL
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Build Begin' && date
|
|
|
|
# Suppress "dpkg-reconfigure: unable to re-open stdin: No file or directory" warning
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Assign a host name
|
|
sed -i 's/^127\.0\.0\.1\t.*/127\.0\.0\.1\tlocalhost pgbackrest-test/' /etc/hosts
|
|
hostnamectl set-hostname pgbackrest-test
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Update Apt' && date
|
|
apt-get update
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Synchronize Date' && date
|
|
apt-get install -y ntpdate
|
|
ntpdate pool.ntp.org
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Use Google DNS' && date
|
|
echo 'supersede domain-name-servers 8.8.8.8;' >> /etc/dhcp/dhclient.conf
|
|
/etc/init.d/networking restart
|
|
|
|
# Set time sync settings so builds don't fail with clock drift errors
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Time Sync Settings' && date
|
|
sudo /etc/init.d/virtualbox-guest-utils stop
|
|
sudo /usr/sbin/VBoxService --timesync-set-on-restore --timesync-interval 5000 --timesync-set-threshold 1
|
|
|
|
# Mount tmpfs at /home/vagrant/test for faster testing
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Mount tmpfs' && date
|
|
sudo -u vagrant mkdir -p -m 770 /home/vagrant/test
|
|
echo 'tmpfs /home/vagrant/test tmpfs size=2560M 0 1' >> /etc/fstab
|
|
mount -a
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Install Perl Modules' && date
|
|
apt-get install -y libdbd-pg-perl libio-socket-ssl-perl libxml-libxml-perl libxml-checker-perl libperl-critic-perl \
|
|
libdevel-nytprof-perl libyaml-libyaml-perl
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Install Build Tools' && date
|
|
apt-get install -y devscripts build-essential lintian git txt2man debhelper libssl-dev zlib1g-dev libperl-dev lcov cloc
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Install AWS CLI' && date
|
|
apt-get install -y python-pip
|
|
pip install --upgrade awscli
|
|
|
|
# Configure AWS CLI
|
|
sudo -i -u vagrant aws configure set region us-east-1
|
|
sudo -i -u vagrant aws configure set aws_access_key_id accessKey1
|
|
sudo -i -u vagrant aws configure set aws_secret_access_key verySecretKey1
|
|
|
|
# Create test alias for AWS CLI
|
|
echo '' >> /home/vagrant/.profile
|
|
echo '# Test alias for AWS CLI' >> /home/vagrant/.profile
|
|
echo 'alias s3-test="export PYTHONWARNINGS=ignore && aws s3 --endpoint-url=https://172.17.0.2 --no-verify-ssl"' \
|
|
>> /home/vagrant/.profile
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Install Devel::Cover' && date
|
|
dpkg -i /backrest/test/package/u18-libdevel-cover-perl_1.29-2_amd64.deb
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Install Docker' && date
|
|
curl -fsSL test.docker.com | sh
|
|
sudo usermod -aG docker vagrant
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Install Dev Utilities' && date
|
|
apt-get install -y vim htop
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Install TeX Live' && date
|
|
apt-get install -y --no-install-recommends texlive-latex-base texlive-latex-extra texlive-fonts-recommended
|
|
apt-get install -y texlive-font-utils
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Create Postgres Group & pgBackRest User' && date
|
|
adduser --uid=5001 --ingroup=vagrant --disabled-password --gecos "" pgbackrest
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Build VM Images' && date
|
|
rm -rf /backrest/test/.vagrant/docker/*
|
|
rm -rf /backrest/test/.vagrant/libc/*
|
|
rm -rf /backrest/test/.vagrant/package/*
|
|
sudo su - vagrant -c '/backrest/test/test.pl --vm-build'
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Build End' && date
|
|
SHELL
|
|
|
|
# Don't share the default vagrant folder
|
|
config.vm.synced_folder ".", "/vagrant", disabled: true
|
|
|
|
# Mount backrest path for testing
|
|
config.vm.synced_folder "..", "/backrest"
|
|
end
|