diff --git a/ci/Makefile b/ci/Makefile index 5a1c5a88..d47e713a 100644 --- a/ci/Makefile +++ b/ci/Makefile @@ -1,29 +1,32 @@ HOSTNAME=ci.local PUBLIC_IP=127.0.0.1 OPENEXCHANGERATES_API_KEY=dummy FIREBASE_API_KEY=dummy PWD=$(shell pwd) configure: cd .. ; \ cp ci/env.local src/env.local ; \ sed -i 's/{{ host }}/${HOSTNAME}/g' src/env.local ; \ sed -i 's/{{ public_ip }}/${PUBLIC_IP}/g' src/env.local ; \ sed -i 's/{{ openexchangerates_api_key }}/${OPENEXCHANGERATES_API_KEY}/g' src/env.local ; \ sed -i 's/{{ firebase_api_key }}/${FIREBASE_API_KEY}/g' src/env.local ; setup: cd .. && bin/quickstart.sh --nodev build: cd .. && DOCKER_BUILDKIT=0 docker compose -f docker-compose.yml -f docker-compose.build.yml build swoole && DOCKER_BUILDKIT=0 docker compose -f docker-compose.yml -f docker-compose.build.yml build tests && cd ci lint: docker run -v ${PWD}/../:/src/kolab.orig -t kolab-tests /lint.sh test: - docker run --network=kolab_kolab -v ${PWD}/../src:/src/kolabsrc.orig -t kolab-tests /init.sh + docker run --network=kolab_kolab -v ${PWD}/../src:/src/kolabsrc.orig -t kolab-tests /init.sh testsuite + +shell: + docker run --network=kolab_kolab -v ${PWD}/../src:/src/kolabsrc.orig -ti kolab-tests /init.sh shell all: configure setup build lint test diff --git a/docker/tests/init.sh b/docker/tests/init.sh index 2c2bb62f..8d0c083f 100755 --- a/docker/tests/init.sh +++ b/docker/tests/init.sh @@ -1,76 +1,80 @@ #!/bin/bash #set -e sudo cp -a /src/kolabsrc.orig /src/kolabsrc sudo chmod 777 -R /src/kolabsrc 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 find bootstrap/cache/ -type f ! -name ".gitignore" -delete ./artisan key:generate ./artisan clear-compiled ./artisan cache:clear ./artisan horizon:install if [ ! -f storage/oauth-public.key -o ! -f storage/oauth-private.key ]; then ./artisan passport:keys --force fi cat >> .env << EOF PASSPORT_PRIVATE_KEY="$(cat storage/oauth-private.key)" PASSPORT_PUBLIC_KEY="$(cat storage/oauth-public.key)" EOF 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:refresh --seed ./artisan data:import || : ./artisan queue:work --stop-when-empty -# nohup ./artisan horizon >/dev/null 2>&1 & ./artisan octane:start --host=$(grep OCTANE_HTTP_HOST .env | tail -n1 | sed "s/OCTANE_HTTP_HOST=//") >/dev/null 2>&1 & -php \ - -dmemory_limit=-1 \ - vendor/bin/phpunit \ - --exclude-group skipci \ - --verbose \ - --stop-on-defect \ - --stop-on-error \ - --stop-on-failure \ - --testsuite Unit +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 \ + --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 + 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