mirror of
https://github.com/nextcloud/nextcloudpi.git
synced 2026-01-10 15:12:01 -03:30
build: add LXD/docker automatic testing
Signed-off-by: nachoparker <nacho@ownyourbits.com>
This commit is contained in:
parent
fde2f73cfc
commit
9e276600e6
102
build/batch.sh
102
build/batch.sh
@ -20,11 +20,50 @@ source build/buildlib.sh # initializes $IMGNAME
|
||||
echo -e "\e[1mNOTE: CLEAN is enabled\nYou can ^C to cancel now\e[0m"
|
||||
}
|
||||
|
||||
[[ "$SKIP_TESTS" == "1" ]] && {
|
||||
echo -e "\e[1mNOTE: SKIP_TESTS is enabled\nYou can ^C to cancel now\e[0m"
|
||||
}
|
||||
|
||||
sleep 5
|
||||
|
||||
# make sure we don't accidentally include this
|
||||
rm -f ncp-web/wizard.cfg
|
||||
|
||||
# LXD
|
||||
build/build-LXD.sh
|
||||
|
||||
# Docker x86
|
||||
build/build-docker.sh x86
|
||||
|
||||
# Tests
|
||||
[[ "${SKIP_TESTS}" != 1 ]] && {
|
||||
## LXC testing
|
||||
lxc stop ncp || true
|
||||
lxc start ncp
|
||||
lxc exec ncp -- bash -c 'while [ "$(systemctl is-system-running 2>/dev/null)" != "running" ] && [ "$(systemctl is-system-running 2>/dev/null)" != "degraded" ]; do :; done'
|
||||
ip="$(lxc exec ncp -- bash -c 'source /usr/local/etc/library.sh && get_ip')"
|
||||
tests/activation_tests.py "${ip}"
|
||||
tests/nextcloud_tests.py "${ip}"
|
||||
tests/system_tests.py
|
||||
lxc stop ncp
|
||||
|
||||
## Docker testing
|
||||
cd build/docker
|
||||
docker compose down
|
||||
docker volume rm docker_ncdata
|
||||
docker compose up -d
|
||||
sleep 30
|
||||
../../tests/activation_tests.py
|
||||
../../tests/nextcloud_tests.py
|
||||
../../tests/system_tests.py
|
||||
docker compose down
|
||||
cd -
|
||||
}
|
||||
|
||||
# Docker other
|
||||
build/build-docker.sh armhf
|
||||
build/build-docker.sh arm64
|
||||
|
||||
# Raspbian
|
||||
build/build-SD-rpi.sh
|
||||
IMG="$( ls -1t tmp/*.img | head -1 )"
|
||||
@ -43,51 +82,36 @@ build/build-SD-armbian.sh odroidc2 OdroidC2
|
||||
# VM
|
||||
build/build-VM.sh
|
||||
|
||||
# LXD
|
||||
build/build-LXD.sh
|
||||
|
||||
# Docker
|
||||
build/build-docker.sh x86
|
||||
build/build-docker.sh armhf
|
||||
build/build-docker.sh arm64
|
||||
|
||||
[[ "$FTPPASS" == "" ]] && exit
|
||||
|
||||
export DOCKER_CLI_EXPERIMENTAL=enabled
|
||||
|
||||
# TODO test first
|
||||
#&& {
|
||||
docker push ownyourbits/nextcloudpi-x86:latest
|
||||
docker push ownyourbits/nextcloudpi-x86:${version}
|
||||
docker push ownyourbits/nextcloud-x86:latest
|
||||
docker push ownyourbits/nextcloud-x86:${version}
|
||||
docker push ownyourbits/lamp-x86:latest
|
||||
docker push ownyourbits/lamp-x86:${version}
|
||||
docker push ownyourbits/debian-ncp-x86:latest
|
||||
docker push ownyourbits/debian-ncp-x86:${version}
|
||||
#}
|
||||
docker push ownyourbits/nextcloudpi-x86:latest
|
||||
docker push ownyourbits/nextcloudpi-x86:${version}
|
||||
docker push ownyourbits/nextcloud-x86:latest
|
||||
docker push ownyourbits/nextcloud-x86:${version}
|
||||
docker push ownyourbits/lamp-x86:latest
|
||||
docker push ownyourbits/lamp-x86:${version}
|
||||
docker push ownyourbits/debian-ncp-x86:latest
|
||||
docker push ownyourbits/debian-ncp-x86:${version}
|
||||
|
||||
# TODO test first && {
|
||||
docker push ownyourbits/nextcloudpi-armhf:latest
|
||||
docker push ownyourbits/nextcloudpi-armhf:${version}
|
||||
docker push ownyourbits/nextcloud-armhf:latest
|
||||
docker push ownyourbits/nextcloud-armhf:${version}
|
||||
docker push ownyourbits/lamp-armhf:latest
|
||||
docker push ownyourbits/lamp-armhf:${version}
|
||||
docker push ownyourbits/debian-ncp-armhf:latest
|
||||
docker push ownyourbits/debian-ncp-armhf:${version}
|
||||
#}
|
||||
docker push ownyourbits/nextcloudpi-armhf:latest
|
||||
docker push ownyourbits/nextcloudpi-armhf:${version}
|
||||
docker push ownyourbits/nextcloud-armhf:latest
|
||||
docker push ownyourbits/nextcloud-armhf:${version}
|
||||
docker push ownyourbits/lamp-armhf:latest
|
||||
docker push ownyourbits/lamp-armhf:${version}
|
||||
docker push ownyourbits/debian-ncp-armhf:latest
|
||||
docker push ownyourbits/debian-ncp-armhf:${version}
|
||||
|
||||
# TODO test first && {
|
||||
docker push ownyourbits/nextcloudpi-arm64:latest
|
||||
docker push ownyourbits/nextcloudpi-arm64:${version}
|
||||
docker push ownyourbits/nextcloud-arm64:latest
|
||||
docker push ownyourbits/nextcloud-arm64:${version}
|
||||
docker push ownyourbits/lamp-arm64:latest
|
||||
docker push ownyourbits/lamp-arm64:${version}
|
||||
docker push ownyourbits/debian-ncp-arm64:latest
|
||||
docker push ownyourbits/debian-ncp-arm64:${version}
|
||||
#}
|
||||
docker push ownyourbits/nextcloudpi-arm64:latest
|
||||
docker push ownyourbits/nextcloudpi-arm64:${version}
|
||||
docker push ownyourbits/nextcloud-arm64:latest
|
||||
docker push ownyourbits/nextcloud-arm64:${version}
|
||||
docker push ownyourbits/lamp-arm64:latest
|
||||
docker push ownyourbits/lamp-arm64:${version}
|
||||
docker push ownyourbits/debian-ncp-arm64:latest
|
||||
docker push ownyourbits/debian-ncp-arm64:${version}
|
||||
|
||||
# Docker multi-arch
|
||||
docker manifest create --amend ownyourbits/nextcloudpi:${version} \
|
||||
|
||||
@ -112,6 +112,9 @@ function set-nc-domain()
|
||||
{
|
||||
local domain="${1?}"
|
||||
domain="$(sed 's|http.\?://||;s|\(/.*\)||' <<<"${domain}")"
|
||||
if ! ping -c1 -w1 -q "${domain}" &>/dev/null; then
|
||||
unset domain
|
||||
fi
|
||||
if [[ "${domain}" == "" ]] || is_an_ip "${domain}"; then
|
||||
echo "warning: No domain found. Defaulting to '$(hostname)'"
|
||||
domain="$(hostname)"
|
||||
|
||||
@ -19,7 +19,7 @@ import getopt
|
||||
import os
|
||||
import signal
|
||||
from urllib.request import urlopen
|
||||
from subprocess import run, PIPE
|
||||
from subprocess import run, getstatusoutput, PIPE
|
||||
|
||||
processes_must_be_running = [
|
||||
'apache2',
|
||||
@ -167,6 +167,10 @@ def check_notify_push():
|
||||
print(result.stdout)
|
||||
return False
|
||||
|
||||
def is_lxc():
|
||||
"check that we are running inside a LXC container"
|
||||
(exitcode, output) = getstatusoutput('grep -q container=lxc /proc/1/environ')
|
||||
return exitcode == 0
|
||||
|
||||
def signal_handler(sig, frame):
|
||||
sys.exit(0)
|
||||
@ -206,10 +210,17 @@ if __name__ == "__main__":
|
||||
except:
|
||||
dockers_running = ''
|
||||
|
||||
# detect if we are running this in a LXC instance
|
||||
try:
|
||||
lxc_running = run(['lxc', 'info', 'ncp'], stdout=PIPE, check = True)
|
||||
except:
|
||||
lxc_running = False
|
||||
|
||||
# local method
|
||||
if os.path.exists('/usr/local/etc/ncp-baseimage'):
|
||||
print(tc.brown + "* local NCP instance detected" + tc.normal)
|
||||
binaries_must_be_installed = binaries_must_be_installed + binaries_no_docker
|
||||
if not is_lxc():
|
||||
binaries_must_be_installed = binaries_must_be_installed + binaries_no_docker
|
||||
pre_cmd = []
|
||||
|
||||
# docker method
|
||||
@ -217,6 +228,11 @@ if __name__ == "__main__":
|
||||
print( tc.brown + "* local NCP docker instance detected" + tc.normal)
|
||||
pre_cmd = ['docker', 'exec', '-ti', 'nextcloudpi']
|
||||
|
||||
# LXC method
|
||||
elif lxc_running:
|
||||
print( tc.brown + "* local LXC instance detected" + tc.normal)
|
||||
pre_cmd = ['lxc', 'exec', 'ncp', '--']
|
||||
|
||||
# SSH method
|
||||
else:
|
||||
if len(args) == 0:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user