You've already forked pgbackrest
mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2026-05-22 10:15:16 +02:00
79cfd3aebf
This was the interface between Perl and C introduced in36a5349bbut sincef0ef73dbhas only been used by the Perl integration tests. This is expensive code to maintain just for testing. The main dependency was the interface to storage, no matter where it was located, e.g. S3. Replace this with the new-introduced repo commands (d3c83453) that allow access to repo storage via the command line. The other dependency was on various cfgOption* functions and CFGOPT_ constants that were convenient but not necessary. Replace these with hard-coded strings in most places and create new constants for commonly used values. Remove all auto-generated Perl code. This means that the error list will no longer be maintained automatically so copy used errors to Common::Exception.pm. This file will need to be maintained manually going forward but there is not likely to be much churn as the Perl integration tests are being retired. Update test.pl and related code to remove LibC builds. Ding, dong, LibC is dead.
115 lines
5.6 KiB
Ruby
115 lines
5.6 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"
|
|
|
|
# Increase disk size if the vagrant-disksize plugin is available
|
|
# To install the plugin: vagrant plugin install vagrant-disksize
|
|
if Vagrant.has_plugin?('vagrant-disksize')
|
|
config.disksize.size = '64GB'
|
|
end
|
|
|
|
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 skew errors. If a build does fail with "clock skew detected",
|
|
# rerun the following at the command line.
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
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
|
|
|
|
# Create /tmp/pgbackrest and give ownership to root so we know unit tests are not writing there
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Create /tmp/pgbackrest owned by root' && date
|
|
sudo mkdir -p /tmp/pgbackrest
|
|
sudo chown root:root /tmp/pgbackrest
|
|
sudo chmod 700 /tmp/pgbackrest
|
|
|
|
# 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 libxml-checker-perl libyaml-libyaml-perl
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Install Build Tools' && date
|
|
apt-get install -y devscripts build-essential lintian git cloc txt2man debhelper libssl-dev zlib1g-dev libperl-dev \
|
|
libxml2-dev liblz4-dev libpq-dev valgrind lcov
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Install Docker' && date
|
|
curl -fsSL https://get.docker.com | sh
|
|
sudo usermod -aG docker vagrant
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Install Dev Utilities' && date
|
|
apt-get install -y vim htop
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
# echo 'Install TeX Live' && date
|
|
# Not installed by default since latex is only needed for releases and PDF development/testing
|
|
# apt-get install -y --no-install-recommends texlive-latex-base texlive-latex-extra texlive-fonts-recommended
|
|
# apt-get install -y texlive-font-utils
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Build VM Images' && date
|
|
rm -rf /backrest/test/.vagrant/docker/*
|
|
rm -rf /backrest/test/.vagrant/bin/*
|
|
rm -rf /backrest/test/.vagrant/package/*
|
|
sudo su - vagrant -c '/backrest/test/test.pl --vm-build'
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
echo 'Build End' && date
|
|
|
|
# Useful commands
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
# Force remove all containers:
|
|
# docker rm -f $(docker ps -a -q)
|
|
# Force remove all images:
|
|
# docker rmi -f $(docker images -q)
|
|
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
|