@@ -295,6 +295,119 @@ jobs:
295295 path : nextcloud.log
296296 if-no-files-found : warn
297297
298+ nc-docker-dsp-https-bridge :
299+ runs-on : ubuntu-22.04
300+ name : NC In Julius Docker(DSP-HTTPS-BRIDGE) • 🐘8.3
301+ env :
302+ docker-image : ghcr.io/juliusknorr/nextcloud-dev-php83:master
303+
304+ steps :
305+ - name : Set app env
306+ run : echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
307+
308+ - name : Create certificates
309+ run : |
310+ mkdir certs
311+ openssl req -nodes -new -x509 -subj '/CN=host.docker.internal' -sha256 -keyout certs/privkey.pem -out certs/fullchain.pem -days 365000 > /dev/null 2>&1
312+ cat certs/fullchain.pem certs/privkey.pem | tee certs/cert.pem > /dev/null 2>&1
313+
314+ - name : Create containers
315+ run : |
316+ docker network create master_bridge
317+ docker run -v /var/run/docker.sock:/var/run/docker.sock \
318+ -v `pwd`/certs/cert.pem:/certs/cert.pem \
319+ -e NC_HAPROXY_PASSWORD="some_secure_password" \
320+ -e BIND_ADDRESS="172.17.0.1" \
321+ -e EX_APPS_NET="ipv4@localhost" \
322+ --net host --name nextcloud-appapi-dsp -h nextcloud-appapi-dsp \
323+ --privileged -d ghcr.io/nextcloud/nextcloud-appapi-dsp:latest
324+ docker run --net=master_bridge --name=nextcloud --rm -d ${{ env.docker-image }}
325+ sleep 60s
326+ hostname -I
327+ docker exec nextcloud-appapi-dsp ip addr show | grep inet | awk '{print $2}' | cut -d/ -f1
328+
329+ - name : Install AppAPI
330+ run : |
331+ docker exec -w /var/www/html/apps nextcloud git clone https://github.com/cloud-py-api/${{ env.APP_NAME }}.git
332+ docker exec -w /var/www/html/apps/${{ env.APP_NAME }} nextcloud git fetch origin $GITHUB_REF
333+ docker exec -w /var/www/html/apps/${{ env.APP_NAME }} nextcloud git checkout FETCH_HEAD
334+ docker exec nextcloud sudo -u www-data php occ app:enable app_api
335+ docker cp ./certs/cert.pem nextcloud:/
336+ docker exec nextcloud sudo -u www-data php occ security:certificates:import /cert.pem
337+ docker exec nextcloud sudo -u www-data php occ app_api:daemon:register \
338+ docker_by_port Docker docker-install https host.docker.internal:2375 http://nextcloud.local/index.php \
339+ --net=master_bridge --haproxy_password=some_secure_password
340+ docker exec nextcloud sudo -u www-data php occ app_api:daemon:list
341+ docker exec nextcloud sudo -u www-data php occ app_api:app:register app-skeleton-python docker_by_port \
342+ --info-xml https://raw.githubusercontent.com/nextcloud/app-skeleton-python/main/appinfo/info.xml
343+ docker exec nextcloud sudo -u www-data php occ app_api:app:enable app-skeleton-python
344+
345+ - name : Checking if ExApp container can access HTTPS DSP
346+ run : |
347+ docker exec nc_app_app-skeleton-python apt update
348+ docker exec nc_app_app-skeleton-python apt install curl -y
349+ docker exec nc_app_app-skeleton-python curl --resolve host.docker.internal:2375:172.17.0.1 https://host.docker.internal:2375
350+
351+ - name : Disable ExApp
352+ run : |
353+ docker exec nextcloud sudo -u www-data php occ app_api:app:disable app-skeleton-python
354+
355+ - name : Copy NC log to host
356+ if : always()
357+ run : docker cp nextcloud:/var/www/html/data/nextcloud.log nextcloud.log
358+
359+ - name : Check logs
360+ run : |
361+ grep -q 'Hello from app-skeleton-python :)' nextcloud.log || error
362+ grep -q 'Bye bye from app-skeleton-python :(' nextcloud.log || error
363+
364+ - name : Save HaProxy logs
365+ if : always()
366+ run : docker logs nextcloud-appapi-dsp > haproxy.log 2>&1
367+
368+ - name : Save container info & logs
369+ if : always()
370+ run : |
371+ docker inspect nc_app_app-skeleton-python | json_pp > container.json
372+ docker logs nc_app_app-skeleton-python > container.log 2>&1
373+
374+ - name : Unregister Skeleton & Daemon
375+ run : |
376+ docker exec nextcloud sudo -u www-data php occ app_api:app:unregister app-skeleton-python
377+ docker exec nextcloud sudo -u www-data php occ app_api:daemon:unregister docker_by_port
378+
379+ - name : Upload HaProxy logs
380+ if : always()
381+ uses : actions/upload-artifact@v4
382+ with :
383+ name : dsp_https_bridge_haproxy.log
384+ path : haproxy.log
385+ if-no-files-found : warn
386+
387+ - name : Upload Container info
388+ if : always()
389+ uses : actions/upload-artifact@v4
390+ with :
391+ name : dsp_https_bridge_container.json
392+ path : container.json
393+ if-no-files-found : warn
394+
395+ - name : Upload Container logs
396+ if : always()
397+ uses : actions/upload-artifact@v4
398+ with :
399+ name : dsp_https_bridge_container.log
400+ path : container.log
401+ if-no-files-found : warn
402+
403+ - name : Upload NC logs
404+ if : always()
405+ uses : actions/upload-artifact@v4
406+ with :
407+ name : dsp_https_bridge_nextcloud.log
408+ path : nextcloud.log
409+ if-no-files-found : warn
410+
298411 nc-docker-dsp-https :
299412 runs-on : ubuntu-22.04
300413 name : NC In Julius Docker(DSP-HTTPS) • 🐘8.3
0 commit comments