mirror of
https://github.com/mail-in-a-box/mailinabox.git
synced 2025-04-01 23:57:05 +00:00
# Conflicts: # .gitignore # management/auth.py # management/daemon.py # management/mail_log.py # management/mailconfig.py # management/mfa.py # management/ssl_certificates.py # management/status_checks.py # management/utils.py # management/web_update.py # setup/mail-postfix.sh # setup/migrate.py # setup/preflight.sh # setup/webmail.sh # tests/test_mail.py # tools/editconf.py
105 lines
3.5 KiB
Ruby
105 lines
3.5 KiB
Ruby
#####
|
|
##### This file is part of Mail-in-a-Box-LDAP which is released under the
|
|
##### terms of the GNU Affero General Public License as published by the
|
|
##### Free Software Foundation, either version 3 of the License, or (at
|
|
##### your option) any later version. See file LICENSE or go to
|
|
##### https://github.com/downtownallday/mailinabox-ldap for full license
|
|
##### details.
|
|
#####
|
|
|
|
load './funcs.rb'
|
|
|
|
Vagrant.configure("2") do |config|
|
|
|
|
config.vm.synced_folder "../..", "/mailinabox", id: "mailinabox", automount: false
|
|
use_preloaded_box config, "ubuntu/jammy64"
|
|
|
|
# fresh install with encryption-at-rest
|
|
|
|
if ENV['tests']=='all'
|
|
config.vm.define "remote-nextcloud-docker-ehdd" do |m1|
|
|
m1.vm.provision :shell, :inline => <<-SH
|
|
cd /mailinabox
|
|
export PRIMARY_HOSTNAME=qa1.abc.com
|
|
export FEATURE_MUNIN=false
|
|
export EHDD_KEYFILE=$HOME/keyfile
|
|
echo -n "boo" >$EHDD_KEYFILE
|
|
tests/system-setup/remote-nextcloud-docker.sh || exit 1
|
|
tests/runner.sh -no-smtp-remote remote-nextcloud ehdd default || exit 2
|
|
SH
|
|
end
|
|
end
|
|
|
|
# remote-nextcloud-docker w/basic data
|
|
|
|
config.vm.define "remote-nextcloud-docker" do |m1|
|
|
m1.vm.provision :shell, :inline => <<-SH
|
|
cd /mailinabox
|
|
export PRIMARY_HOSTNAME=qa2.abc.com
|
|
export FEATURE_MUNIN=false
|
|
tests/system-setup/remote-nextcloud-docker.sh upgrade --populate=basic || exit 1
|
|
tests/runner.sh -no-smtp-remote remote-nextcloud upgrade-basic default || exit 2
|
|
SH
|
|
end
|
|
|
|
|
|
# upgrade-from-upstream
|
|
|
|
config.vm.define "upgrade-from-upstream" do |m1|
|
|
m1.vm.provision :shell, :inline => <<-SH
|
|
cd /mailinabox
|
|
export PRIMARY_HOSTNAME=qa3.abc.com
|
|
# TODO: change UPSTREAM_TAG to 'main' once upstream is installable
|
|
export UPSTREAM_TAG=v67
|
|
tests/system-setup/upgrade-from-upstream.sh --populate=basic --populate=totpuser || exit 1
|
|
tests/runner.sh -no-smtp-remote upgrade-basic upgrade-totpuser default || exit 2
|
|
SH
|
|
end
|
|
|
|
# upgrade
|
|
|
|
# this test is only needed when testing migrations from miabldap
|
|
# to a newer miabldap with a migration step
|
|
#
|
|
# upgrade will handle testing upgrades of
|
|
# miabldap with or without a new migration step
|
|
config.vm.define "upgrade" do |m1|
|
|
m1.vm.provision :shell, :inline => <<-SH
|
|
cd /mailinabox
|
|
# TODO: remove DEB_PYTHON_INSTALL_LAYOUT once MIABLDAP_RELEASE_TAG >= v66 (see https://github.com/downtownallday/mailinabox-ldap/commit/371f5bc1b236de40a1ed5d9118140ee13fddf5dc)
|
|
export DEB_PYTHON_INSTALL_LAYOUT='deb'
|
|
export PRIMARY_HOSTNAME=upgrade.abc.com
|
|
tests/system-setup/upgrade.sh --populate=basic --populate=totpuser || exit 1
|
|
tests/runner.sh -no-smtp-remote upgrade-basic upgrade-totpuser default || exit 2
|
|
SH
|
|
end
|
|
|
|
# unsetvars: because miab sets bash '-e' to fail any setup script
|
|
# when a script command returns a non-zero exit code, and more
|
|
# importantly '-u' which fails scripts when any unset variable is
|
|
# accessed, this definition sets a minimal number of environment
|
|
# variables prior to running start.sh. Doing so will test that no
|
|
# failures occur during setup in the most common use case because
|
|
# other vagrant definitions in this file load
|
|
# tests/system-setup/setup-default.sh, which pre-assign a value to
|
|
# most variables.
|
|
|
|
if ENV['tests']=='all' or ENV['tests']=='pre-commit'
|
|
config.vm.define "unsetvars" do |m1|
|
|
m1.vm.hostname = "mailinabox.lan"
|
|
m1.vm.network "private_network", ip: "192.168.56.4"
|
|
m1.vm.provision :shell, :inline => <<-SH
|
|
export NONINTERACTIVE=1
|
|
export PUBLIC_IP=auto
|
|
export PUBLIC_IPV6=auto
|
|
export PRIMARY_HOSTNAME=auto
|
|
export SKIP_NETWORK_CHECKS=1
|
|
cd /mailinabox
|
|
setup/start.sh
|
|
SH
|
|
end
|
|
end
|
|
|
|
|
|
end
|