Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F2572158
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
6 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/ci/Makefile b/ci/Makefile
new file mode 100644
index 00000000..9a021d8f
--- /dev/null
+++ b/ci/Makefile
@@ -0,0 +1,28 @@
+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 compose build swoole tests && cd ci
+
+lint:
+ docker run -v ${PWD}/../:/src/kolab.orig -t kolab-tests /lint.sh
+
+test:
+ docker run --network=host -v ${PWD}/../src:/src/kolabsrc.orig -t kolab-tests /init.sh
+
+all: configure setup build lint test
+
diff --git a/ci/env.local b/ci/env.local
new file mode 100644
index 00000000..5b322dd7
--- /dev/null
+++ b/ci/env.local
@@ -0,0 +1,46 @@
+MFA_DSN=mysql://root:Welcome2KolabSystems@127.0.0.1/roundcube
+APP_DOMAIN={{ host }}
+APP_WEBSITE_DOMAIN={{ host }}
+APP_KEY=base64:FG6ECzyAMSmyX+eYwO/FW3bwnarbKkBhqtO65vlMb1E=
+APP_PUBLIC_URL=https://{{ host }}
+COTURN_STATIC_SECRET=uzYguvIl9tpZFMuQOE78DpOi6Jc7VFSD0UAnvgMsg5n4e74MgIf6vQvbc6LWzZjz
+COTURN_PUBLIC_IP='{{ public_ip }}'
+MEET_TURN_SERVER='turn:{{ public_ip }}:3478'
+MEET_WEBRTC_LISTEN_IP='{{ public_ip }}'
+MEET_PUBLIC_DOMAIN={{ host }}
+MEET_SERVER_URLS=https://{{ host }}/meetmedia/api/
+WEBMAIL_URL=/roundcubemail
+APP_URL=https://{{ host }}
+ASSET_URL=https://{{ host }}
+
+MOLLIE_KEY=
+STRIPE_KEY=
+STRIPE_PUBLIC_KEY=
+STRIPE_WEBHOOK_SECRET=
+
+OCTANE_HTTP_HOST={{ host }}
+OPENEXCHANGERATES_API_KEY={{ openexchangerates_api_key }}
+FIREBASE_API_KEY={{ firebase_api_key }}
+
+#Generated by php artisan passport:client --password, but can be left hardcoded (the seeder will pick it up)
+PASSPORT_PROXY_OAUTH_CLIENT_ID=942edef5-3dbd-4a14-8e3e-d5d59b727bee
+PASSPORT_PROXY_OAUTH_CLIENT_SECRET=L6L0n56ecvjjK0cJMjeeV1pPAeffUBO0YSSH63wf
+
+#Generated by php artisan passport:client --password, but can be left hardcoded (the seeder will pick it up)
+PASSPORT_COMPANIONAPP_OAUTH_CLIENT_ID=9566e018-f05d-425c-9915-420cdb9258bb
+PASSPORT_COMPANIONAPP_OAUTH_CLIENT_SECRET=XjgV6SU9shO0QFKaU6pQPRC5rJpyRezDJTSoGLgz
+
+APP_TENANT_ID=42
+APP_PASSPHRASE=simple123
+
+MAIL_DRIVER=log
+
+KOLAB_SSL_CERTIFICATE=/etc/pki/tls/certs/kolab.hosted.com.cert
+KOLAB_SSL_CERTIFICATE_FULLCHAIN=/etc/pki/tls/certs/kolab.hosted.com.chain.pem
+KOLAB_SSL_CERTIFICATE_KEY=/etc/pki/tls/certs/kolab.hosted.com.key
+
+PROXY_SSL_CERTIFICATE=/etc/pki/tls/certs/imap.hosted.com.cert
+PROXY_SSL_CERTIFICATE_KEY=/etc/pki/tls/certs/imap.hosted.com.key
+
+NGINX_SSL_CERTIFICATE=/etc/pki/tls/certs/imap.hosted.com.cert
+NGINX_SSL_CERTIFICATE_KEY=/etc/pki/tls/certs/imap.hosted.com.key
diff --git a/docker/tests/Dockerfile b/docker/tests/Dockerfile
index c7edc167..b7d54d63 100644
--- a/docker/tests/Dockerfile
+++ b/docker/tests/Dockerfile
@@ -1,12 +1,21 @@
FROM apheleia/swoole:4.8.x
MAINTAINER Jeroen van Meeuwen <vanmeeuwen@apheleia-it.ch>
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
COPY init.sh /init.sh
+COPY lint.sh /lint.sh
CMD [ "/init.sh" ]
diff --git a/docker/tests/init.sh b/docker/tests/init.sh
index 30df50e1..76e09f85 100755
--- a/docker/tests/init.sh
+++ b/docker/tests/init.sh
@@ -1,74 +1,76 @@
#!/bin/bash
-set -e
-cp -a /src/kolabsrc.orig /src/kolabsrc
+#set -e
+sudo cp -a /src/kolabsrc.orig /src/kolabsrc
+sudo chmod 777 -R /src/kolabsrc
cd /src/kolabsrc
-rm -rf vendor/ composer.lock
+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
-
-
-
-# Tests\Feature\Controller\PaymentsMollieEuroTest
# /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 &
-# phpunit --verbose tests/Feature/Controller/PaymentsMollieEuroTest.php
php \
-dmemory_limit=-1 \
vendor/bin/phpunit \
+ --exclude flaky \
--verbose \
--stop-on-defect \
--stop-on-error \
--stop-on-failure \
--testsuite Unit
php \
-dmemory_limit=-1 \
vendor/bin/phpunit \
+ --exclude flaky \
--verbose \
--stop-on-defect \
--stop-on-error \
--stop-on-failure \
--testsuite Functional
php \
-dmemory_limit=-1 \
vendor/bin/phpunit \
+ --exclude flaky \
--verbose \
--stop-on-defect \
--stop-on-error \
--stop-on-failure \
--testsuite Feature
diff --git a/docker/tests/lint.sh b/docker/tests/lint.sh
new file mode 100755
index 00000000..cf509b4e
--- /dev/null
+++ b/docker/tests/lint.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+set -e
+sudo cp -a /src/kolab.orig /src/kolab
+sudo chmod 777 -R /src/kolab
+cd /src/kolab/src
+
+sudo rm -rf vendor/ composer.lock
+php -dmemory_limit=-1 $(command -v composer) install
+sudo rm -rf node_modules
+mkdir node_modules
+npm install
+
+php -dmemory_limit=500M \
+ vendor/bin/phpcs \
+ -s
+
+php -dmemory_limit=500M \
+ vendor/bin/phpstan \
+ analyse
+
+npm run lint
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Fri, Mar 20, 1:13 AM (1 d, 17 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
458832
Default Alt Text
(6 KB)
Attached To
Mode
R2 kolab
Attached
Detach File
Event Timeline
Log In to Comment