@@ -463,7 +463,7 @@ runs:
463463 echo "All WOPI apps ready."
464464
465465 - name : Start collaboration services
466- if : " inputs.collaboration-apps != '' && !contains(inputs.collaboration-apps, 'cs3-wopi') "
466+ if : " inputs.collaboration-apps != ''"
467467 shell : bash
468468 env :
469469 COLLAB_APPS : ${{ inputs.collaboration-apps }}
@@ -472,7 +472,7 @@ runs:
472472 CONFIG_DIR="${HOME}/.ocis/config"
473473
474474 start_collab() {
475- local name=$1 app_name=$2 product=$3 addr=$4 grpc=$5 http=$6 debug=$7
475+ local name=$1 app_name=$2 product=$3 addr=$4 grpc=$5 http=$6 debug=$7 wopi_src=${8:-}
476476 env \
477477 OCIS_URL="$OCIS_URL" \
478478 OCIS_CONFIG_DIR="$CONFIG_DIR" \
@@ -490,7 +490,7 @@ runs:
490490 COLLABORATION_APP_NAME="$app_name" \
491491 COLLABORATION_APP_PRODUCT="$product" \
492492 COLLABORATION_APP_ADDR="$addr" \
493- COLLABORATION_WOPI_SRC="http://localhost:${http}" \
493+ COLLABORATION_WOPI_SRC="${wopi_src:- http://localhost:${http} }" \
494494 ocis collaboration server > "/tmp/collab-${name}.log" 2>&1 &
495495 echo $! > "/tmp/collab-${name}.pid"
496496 echo "collaboration-${name} started (PID $!)"
@@ -499,19 +499,21 @@ runs:
499499 [[ "$COLLAB_APPS" == *collabora* ]] && start_collab collabora Collabora Collabora "https://localhost:9980" 9301 9300 9304
500500 [[ "$COLLAB_APPS" == *onlyoffice* ]] && start_collab onlyoffice OnlyOffice OnlyOffice "https://localhost:443" 9311 9310 9314
501501 [[ "$COLLAB_APPS" == *fakeoffice* ]] && start_collab fakeoffice FakeOffice Microsoft "http://localhost:8080" 9321 9320 9324
502+ # cs3-wopi: oCIS collaboration service points FakeOffice as the app but routes WOPI through cs3org/wopiserver on :9300
503+ [[ "$COLLAB_APPS" == *cs3-wopi* ]] && start_collab cs3-wopi FakeOffice Microsoft "http://localhost:8080" 9321 9320 9324 "http://localhost:9300"
502504
503505 PIDS=()
504- for name in collabora onlyoffice fakeoffice; do
506+ for name in collabora onlyoffice fakeoffice cs3-wopi ; do
505507 [[ "$COLLAB_APPS" != *$name* ]] && continue
506- port=$(case $name in collabora) echo 9304;; onlyoffice) echo 9314;; fakeoffice) echo 9324;; esac)
508+ port=$(case $name in collabora) echo 9304;; onlyoffice) echo 9314;; fakeoffice) echo 9324;; cs3-wopi) echo 9324;; esac)
507509 ( echo "Waiting for collaboration-${name} healthz on :${port}..."
508510 timeout 300 bash -c "until curl -sf http://localhost:${port}/healthz; do sleep 2; done" \
509511 || (echo "=== collab-${name} log ===" && tail -30 /tmp/collab-${name}.log && exit 1) ) &
510512 PIDS+=($!)
511513 done
512514 for PID in "${PIDS[@]}"; do wait "$PID" || exit 1; done
513515 echo "All collaboration services ready."
514- echo "WOPI_PORT=9320" >> "$GITHUB_ENV"
516+ [[ "$COLLAB_APPS" == *cs3-wopi* ]] || echo "WOPI_PORT=9320" >> "$GITHUB_ENV"
515517
516518 # -------------------------------------------------------------------------
517519 # 13. cs3-wopi: cs3org/wopiserver + fakeoffice (via collaboration-apps: cs3-wopi)
0 commit comments