diff --git a/docker/tests/Dockerfile b/docker/tests/Dockerfile index 8a62960b..31304fc6 100644 --- a/docker/tests/Dockerfile +++ b/docker/tests/Dockerfile @@ -1,24 +1,16 @@ -FROM apheleia/swoole:latest +FROM kolab-webapp:latest MAINTAINER Jeroen van Meeuwen USER root RUN dnf -y install findutils php-phpunit-PHPUnit chromium php-xdebug -RUN mkdir /src/ && chown 1001:100 /src/ -RUN usermod -G wheel default -RUN echo '%wheel ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers -RUN chmod 777 /opt/app-root/src -USER default -EXPOSE 8000 -WORKDIR /src/ COPY init.sh /init.sh COPY lint.sh /lint.sh -COPY refresh.sh /refresh.sh CMD [ "/init.sh" ] diff --git a/docker/tests/init.sh b/docker/tests/init.sh index de8ad34c..d93e8814 100755 --- a/docker/tests/init.sh +++ b/docker/tests/init.sh @@ -1,75 +1,82 @@ #!/bin/bash #set -e -rm -rf /src/kolabsrc -sudo cp -a /src/kolabsrc.orig /src/kolabsrc -sudo chmod 777 -R /src/kolabsrc +rsync -av \ + --exclude=vendor \ + --exclude=composer.lock \ + --exclude=node_modules \ + --exclude=package-lock.json \ + --exclude=public \ + --exclude=storage \ + --exclude=resources/build \ + --exclude=bootstrap \ + --exclude=.gitignore \ + /src/kolabsrc.orig/ /src/kolabsrc/ | tee /tmp/rsync.output cd /src/kolabsrc -sudo rm -rf vendor/ composer.lock -php -dmemory_limit=-1 $(command -v composer) install -sudo rm -rf node_modules -mkdir node_modules -npm install +rm -rf storage/framework +mkdir -p storage/framework/{sessions,views,cache} + +php -dmemory_limit=-1 $(command -v composer) update +/usr/local/bin/npm install find bootstrap/cache/ -type f ! -name ".gitignore" -delete -./artisan storage:link ./artisan clear-compiled ./artisan cache:clear ./artisan horizon:install if rpm -qv chromium 2>/dev/null; then chver=$(rpmquery --queryformat="%{VERSION}" chromium | awk -F'.' '{print $1}') ./artisan dusk:chrome-driver ${chver} fi if [ ! -f 'resources/countries.php' ]; then ./artisan data:countries fi npm run dev # /usr/bin/chromium-browser --no-sandbox --headless --disable-gpu --remote-debugging-port=9222 http://localhost & rm -rf database/database.sqlite ./artisan db:ping --wait php -dmemory_limit=512M ./artisan migrate --force if test "$( env APP_DEBUG=false ./artisan -n users | wc -l )" -lt "1"; then php -dmemory_limit=512M ./artisan db:seed fi ./artisan data:import || : ./artisan queue:work --stop-when-empty ./artisan octane:start --host=$(grep OCTANE_HTTP_HOST .env | tail -n1 | sed "s/OCTANE_HTTP_HOST=//") >/dev/null 2>&1 & if [ "$1" == "testsuite" ]; then php \ -dmemory_limit=-1 \ vendor/bin/phpunit \ --exclude-group skipci \ --verbose \ --stop-on-defect \ --stop-on-error \ --stop-on-failure \ --testsuite Unit php \ -dmemory_limit=-1 \ vendor/bin/phpunit \ --exclude-group skipci \ --verbose \ --stop-on-defect \ --stop-on-error \ --stop-on-failure \ --testsuite Functional php \ -dmemory_limit=-1 \ vendor/bin/phpunit \ --exclude-group skipci,coinbase,mollie,stripe,meet,dns \ --verbose \ --stop-on-defect \ --stop-on-error \ --stop-on-failure \ --testsuite Feature fi if [ "$1" == "shell" ]; then exec /bin/bash fi diff --git a/docker/webapp/init.sh b/docker/webapp/init.sh index 0f433390..d8e0dd79 100755 --- a/docker/webapp/init.sh +++ b/docker/webapp/init.sh @@ -1,38 +1,41 @@ #!/bin/bash set -e set -x rsync -av \ --exclude=vendor \ --exclude=composer.lock \ --exclude=node_modules \ - --exclude="resources/build" \ - --exclude="bootstrap/cache" \ - --exclude=".gitignore" \ - /src/kolabsrc.orig/ /src/kolabsrc + --exclude=package-lock.json \ + --exclude=public \ + --exclude=storage \ + --exclude=resources/build \ + --exclude=bootstrap \ + --exclude=.gitignore \ + /src/kolabsrc.orig/ /src/kolabsrc/ | tee /tmp/rsync.output cd /src/kolabsrc rm -rf storage/framework mkdir -p storage/framework/{sessions,views,cache} php -dmemory_limit=-1 $(command -v composer) update /usr/local/bin/npm install find bootstrap/cache/ -type f ! -name ".gitignore" -delete ./artisan clear-compiled ./artisan cache:clear ./artisan horizon:install if [ ! -f 'resources/countries.php' ]; then ./artisan data:countries fi /usr/local/bin/npm run dev ./artisan db:ping --wait php -dmemory_limit=512M ./artisan migrate --force if test "$( env APP_DEBUG=false ./artisan -n users | wc -l )" -lt "1"; then php -dmemory_limit=512M ./artisan db:seed fi ./artisan data:import || : nohup ./artisan horizon >/dev/null 2>&1 & ./artisan octane:start --host=$(grep OCTANE_HTTP_HOST .env | tail -n1 | sed "s/OCTANE_HTTP_HOST=//")