diff --git a/ci/env b/ci/env index def08b6c..0847c470 100644 --- a/ci/env +++ b/ci/env @@ -1,177 +1,177 @@ APP_NAME=Kolab APP_ENV=local APP_KEY= APP_DEBUG=true -APP_URL=https://kolab.local -APP_PUBLIC_URL=https://kolab.local +APP_URL=http://kolab.local +APP_PUBLIC_URL=http://kolab.local APP_DOMAIN=kolab.local APP_WEBSITE_DOMAIN=kolab.local APP_THEME=default APP_TENANT_ID=5 APP_LOCALE=en APP_LOCALES= APP_WITH_ADMIN=1 APP_WITH_RESELLER=1 APP_WITH_SERVICES=1 APP_WITH_FILES=1 APP_WITH_WALLET=1 APP_WITH_SIGNUP=1 APP_LDAP=0 APP_IMAP=1 -APP_HEADER_CSP="connect-src 'self'; child-src 'self'; font-src 'self'; form-action 'self' data:; frame-ancestors 'self'; img-src blob: data: 'self' *; media-src 'self'; object-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-eval' 'unsafe-inline'; default-src 'self';" -APP_HEADER_XFO=sameorigin +APP_HEADER_CSP= +APP_HEADER_XFO= -ASSET_URL=https://kolab.local +ASSET_URL=http://kolab.local WEBMAIL_URL=/roundcubemail/ SUPPORT_URL=/support LOG_CHANNEL=stdout LOG_SLOW_REQUESTS=5 LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug DB_CONNECTION=mysql DB_DATABASE=kolabdev DB_HOST=127.0.0.1 DB_PASSWORD=simple123 DB_ROOT_PASSWORD=simple123 DB_PORT=3306 DB_USERNAME=kolabdev BROADCAST_DRIVER=redis CACHE_DRIVER=redis QUEUE_CONNECTION=redis SESSION_DRIVER=file SESSION_LIFETIME=120 MFA_DSN=mysql://roundcube:simple123@127.0.0.1/roundcube MFA_TOTP_DIGITS=6 MFA_TOTP_INTERVAL=30 MFA_TOTP_DIGEST=sha1 IMAP_URI=localhost:11143 IMAP_HOST=localhost IMAP_PORT=11143 IMAP_GUAM_PORT=11143 IMAP_ADMIN_LOGIN=cyrus-admin IMAP_ADMIN_PASSWORD=simple123 IMAP_VERIFY_HOST=false IMAP_VERIFY_PEER=false IMAP_WITH_GROUPWARE_DEFAULT_FOLDERS=false SMTP_HOST=localhost SMTP_PORT=10587 -MEET_SERVER_URLS=https://127.0.0.1:6443/meetmedia/api/ +MEET_SERVER_URLS=http://kolab.local/meetmedia/api/ MEET_SERVER_VERIFY_TLS=false MEET_WEBRTC_LISTEN_IP='127.0.0.1' MEET_PUBLIC_DOMAIN=kolab.local MEET_LISTENING_HOST=127.0.0.1 PGP_ENABLE=true PGP_BINARY=/usr/bin/gpg PGP_AGENT=/usr/bin/gpg-agent PGP_GPGCONF=/usr/bin/gpgconf PGP_LENGTH= REDIS_HOST=localhost REDIS_PASSWORD=null REDIS_PORT=6379 OCTANE_HTTP_HOST=kolab.local SWOOLE_PACKAGE_MAX_LENGTH=10485760 MAIL_MAILER=smtp MAIL_HOST=localhost MAIL_PORT=587 MAIL_USERNAME="noreply@kolab.local" MAIL_PASSWORD="simple123" MAIL_ENCRYPTION=starttls MAIL_FROM_ADDRESS="noreply@kolab.local" MAIL_FROM_NAME="kolab.local" MAIL_REPLYTO_ADDRESS="noreply@kolab.local" MAIL_REPLYTO_NAME=null MAIL_VERIFY_PEER='false' RATELIMIT_WHITELIST="noreply@kolab.local" DNS_TTL=3600 DNS_SPF="v=spf1 mx -all" DNS_STATIC="%s. MX 10 ext-mx01.mykolab.com." DNS_COPY_FROM=null MIX_ASSET_PATH='/' PASSWORD_POLICY= COMPANY_NAME=kolab.org COMPANY_ADDRESS= COMPANY_DETAILS= COMPANY_EMAIL= COMPANY_LOGO= COMPANY_FOOTER= VAT_COUNTRIES=CH,LI VAT_RATE=7.7 KB_ACCOUNT_DELETE= KB_ACCOUNT_SUSPENDED= KB_PAYMENT_SYSTEM= KOLAB_SSL_CERTIFICATE=/etc/certs/kolab.hosted.com.cert KOLAB_SSL_CERTIFICATE_FULLCHAIN=/etc/certs/kolab.hosted.com.chain.pem KOLAB_SSL_CERTIFICATE_KEY=/etc/certs/kolab.hosted.com.key PROXY_SSL_CERTIFICATE=/etc/certs/imap.hosted.com.cert PROXY_SSL_CERTIFICATE_KEY=/etc/certs/imap.hosted.com.key OPENEXCHANGERATES_API_KEY= FIREBASE_API_KEY= MINIO_ENDPOINT=http://localhost:9000 MINIO_USER=minio MINIO_PASSWORD=simple123 MINIO_BUCKET=kolab FILESYSTEM_DISK=minio TRUSTED_PROXIES="172.18.0.7/8,127.0.0.1/8" MOLLIE_KEY= STRIPE_KEY= STRIPE_PUBLIC_KEY= STRIPE_WEBHOOK_SECRET= APP_PASSPHRASE=simple123 MEET_WEBHOOK_TOKEN=simple123 MEET_SERVER_TOKEN=simple123 APP_KEY=base64:EFXja/fHF01EMKiXW200b5zWOynbPzAHfUM78bOp+28= PASSPORT_PROXY_OAUTH_CLIENT_ID=5909ca4f-df7e-45fe-b355-e7c195aef117 PASSPORT_PROXY_OAUTH_CLIENT_SECRET=3URb+3JGJM9wPuDnlUSTPOw2mqmHsoOV8NXanx9xwQM= DES_KEY=kBxUM/53N9p9abusAoT0ZEAxwI2pxFz/ KOLAB_GIT_REF=dev/mollekopf KOLAB_GIT_REMOTE=https://git.kolab.org/source/kolab GIT_REF_ROUNDCUBEMAIL=dev/kolab-1.5 GIT_REMOTE_ROUNDCUBEMAIL=https://git.kolab.org/source/roundcubemail.git GIT_REF_ROUNDCUBEMAIL_PLUGINS=master GIT_REMOTE_ROUNDCUBEMAIL_PLUGINS=https://git.kolab.org/diffusion/RPK/roundcubemail-plugins-kolab.git GIT_REF_CHWALA=dev/mollekopf GIT_REMOTE_CHWALA=https://git.kolab.org/diffusion/C/chwala.git GIT_REF_SYNCROTON=master GIT_REMOTE_SYNCROTON=https://git.kolab.org/diffusion/S/syncroton.git GIT_REF_AUTOCONF=master GIT_REMOTE_AUTOCONF=https://git.kolab.org/diffusion/AC/autoconf.git GIT_REF_IRONY=master GIT_REMOTE_IRONY=https://git.kolab.org/source/iRony.git GIT_REF_FREEBUSY=master GIT_REMOTE_FREEBUSY=https://git.kolab.org/diffusion/F/freebusy.git IMAP_GIT_REF=dev/mollekopf IMAP_GIT_REMOTE=https://git.kolab.org/source/cyrus-imapd diff --git a/docker/tests/Dockerfile b/docker/tests/Dockerfile index 4f3eb04c..e019d3c6 100644 --- a/docker/tests/Dockerfile +++ b/docker/tests/Dockerfile @@ -1,7 +1,8 @@ FROM kolab-webapp:latest USER root RUN dnf -y install findutils chromium php-xdebug +RUN cd /opt/app-root/src/ && ./artisan dusk:chrome-driver $(rpmquery --queryformat="%{VERSION}" chromium | awk -F'.' '{print $1}') COPY init.sh /init.sh diff --git a/docker/tests/init.sh b/docker/tests/init.sh index 3f502cad..d9f9913a 100755 --- a/docker/tests/init.sh +++ b/docker/tests/init.sh @@ -1,165 +1,135 @@ #!/bin/bash set -e set -x 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/ /opt/app-root/src/ | tee /tmp/rsync.output cd /opt/app-root/src/ if [ "$1" == "--refresh" ]; then - rm -rf storage/framework - mkdir -p storage/framework/{sessions,views,cache} - - find bootstrap/cache/ -type f ! -name ".gitignore" -delete - ./artisan clear-compiled - ./artisan cache:clear - - # FIXME seems to be required for db seed to function - composer update - - if rpm -qv chromium 2>/dev/null; then - chver=$(rpmquery --queryformat="%{VERSION}" chromium | awk -F'.' '{print $1}') - ./artisan dusk:chrome-driver ${chver} - fi - - # Only run npm if something relevant was updated - if grep -e "package.json" -e "resources" /tmp/rsync.output; then - npm run dev - fi - - ./artisan db:ping --wait - - - # Unconditionally get the database into shape - php -dmemory_limit=512M ./artisan migrate:refresh --seed - - ./artisan data:import || : - ./artisan queue:work --stop-when-empty - + /update.sh shift fi ./artisan route:list EXCLUDE_GROUPS=${EXCLUDE_GROUPS:-"skipci,ldap,coinbase,mollie,stripe,meet,dns,slow"} if [ "$1" == "suite-Functional" ]; then php \ -dmemory_limit=-1 \ vendor/bin/phpunit \ --exclude-group skipci,ldap \ --verbose \ --testsuite Unit php \ -dmemory_limit=-1 \ vendor/bin/phpunit \ --exclude-group skipci,ldap \ --verbose \ --testsuite Functional elif [ "$1" == "suite-Feature" ]; then php \ -dmemory_limit=-1 \ vendor/bin/phpunit \ --exclude-group "$EXCLUDE_GROUPS" \ --verbose \ --testsuite Feature elif [ "$1" == "suite-Browser" ]; then - - # Can't do browser tests over https - echo "APP_URL=http://kolab.local" >> .env - echo "APP_PUBLIC_URL=http://kolab.local" >> .env - echo "ASSET_URL=http://kolab.local" >> .env - echo "MEET_SERVER_URLS=http://kolab.local/meetmedia/api/" >> .env - echo "APP_HEADER_CSP=" >> .env - echo "APP_HEADER_XFO=" >> .env - ./artisan octane:start --port=80 >/dev/null 2>&1 & echo "127.0.0.1 kolab.local admin.kolab.local reseller.kolab.local" >> /etc/hosts php \ -dmemory_limit=-1 \ vendor/bin/phpunit \ --exclude-group skipci,ldap,meet,mollie \ --verbose \ --testsuite Browser elif [ "$1" == "testsuite" ]; then php \ -dmemory_limit=-1 \ vendor/bin/phpunit \ --exclude-group "$EXCLUDE_GROUPS" \ --verbose \ --testsuite Unit php \ -dmemory_limit=-1 \ vendor/bin/phpunit \ --exclude-group "$EXCLUDE_GROUPS" \ --verbose \ --testsuite Functional php \ -dmemory_limit=-1 \ vendor/bin/phpunit \ --exclude-group "$EXCLUDE_GROUPS" \ --verbose \ --testsuite Feature elif [ "$1" == "quicktest" ]; then php \ -dmemory_limit=-1 \ vendor/bin/phpunit \ --exclude-group "$EXCLUDE_GROUPS" \ --verbose \ --stop-on-defect \ --stop-on-error \ --stop-on-failure \ --testsuite Unit php \ -dmemory_limit=-1 \ vendor/bin/phpunit \ --exclude-group "$EXCLUDE_GROUPS" \ --verbose \ --stop-on-defect \ --stop-on-error \ --stop-on-failure \ --testsuite Functional php \ -dmemory_limit=-1 \ vendor/bin/phpunit \ --exclude-group "$EXCLUDE_GROUPS" \ --verbose \ --stop-on-defect \ --stop-on-error \ --stop-on-failure \ --testsuite Feature elif [ "$1" == "shell" ]; then exec /bin/bash elif [ "$1" == "lint" ]; then php -dmemory_limit=-1 vendor/bin/phpcs -p php -dmemory_limit=-1 vendor/bin/phpstan analyse npm run lint else + + if [[ "$1" =~ "Browser" ]]; then + echo "Assuming a browsertest and starting octane" + ./artisan octane:start --port=80 >/dev/null 2>&1 & + echo "127.0.0.1 kolab.local admin.kolab.local reseller.kolab.local" >> /etc/hosts + fi + php \ -dmemory_limit=-1 \ vendor/bin/phpunit \ --exclude-group "$EXCLUDE_GROUPS" \ --verbose \ --stop-on-defect \ --stop-on-error \ --stop-on-failure \ "$1" fi