Compare commits

..

3 Commits

Author SHA1 Message Date
143c08ea12 fix(test): make queue completion test more robust with polling loop
All checks were successful
ci/woodpecker/push/coordinator Pipeline was successful
2026-03-02 20:35:42 -06:00
892ffd637f ci: fix deploy service names (#662)
Some checks failed
ci/woodpecker/manual/base-image Pipeline was successful
ci/woodpecker/manual/coordinator Pipeline failed
ci/woodpecker/manual/infra Pipeline was successful
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/manual/ci Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-03 02:06:11 +00:00
394a46bef2 ci: fix deploy - use docker service update (#661)
Some checks failed
ci/woodpecker/manual/base-image Pipeline was successful
ci/woodpecker/manual/infra Pipeline was successful
ci/woodpecker/manual/coordinator Pipeline was successful
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/manual/ci Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-03 01:23:01 +00:00
2 changed files with 29 additions and 15 deletions

View File

@@ -340,6 +340,8 @@ steps:
# ─── Deploy to Docker Swarm (main only) ─────────────────────
# ─── Deploy to Docker Swarm via Portainer (main only) ─────────────────────
deploy-swarm:
image: alpine:3
environment:
@@ -347,29 +349,29 @@ steps:
from_secret: ssh_private_key
SSH_KNOWN_HOSTS:
from_secret: ssh_known_hosts
GITEA_USER:
from_secret: gitea_username
GITEA_TOKEN:
from_secret: gitea_token
PORTAINER_URL:
from_secret: portainer_url
PORTAINER_API_KEY:
from_secret: portainer_api_key
commands:
- apk add --no-cache openssh-client
- apk add --no-cache curl openssh-client
- |
set -e
# Setup SSH
echo "🚀 Deploying to Docker Swarm..."
# Setup SSH for fallback
mkdir -p ~/.ssh
echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
chmod 600 ~/.ssh/known_hosts
echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
# Deploy to swarm - force update to pull new images
echo "🚀 Deploying to Docker Swarm..."
# Force service updates (images are pulled from public registry)
ssh -o StrictHostKeyChecking=no localadmin@10.1.1.45 \
"docker login git.mosaicstack.dev -u \$GITEA_USER -p \$GITEA_TOKEN && \
docker service update --force mosaic_api && \
docker service update --force mosaic_web && \
docker service update --force mosaic_orchestrator && \
docker service update --force mosaic_coordinator && \
"docker service update --with-registry-auth --force mosaic-stack-api && \
docker service update --with-registry-auth --force mosaic-stack-web && \
docker service update --with-registry-auth --force mosaic-stack-orchestrator && \
docker service update --with-registry-auth --force mosaic-stack-coordinator && \
echo '✅ All services updated'"
when:
- branch: [main]

View File

@@ -601,9 +601,21 @@ class TestCoordinatorIntegration:
coordinator = Coordinator(queue_manager=queue_manager, poll_interval=0.02)
task = asyncio.create_task(coordinator.start())
await asyncio.sleep(0.5) # Allow time for processing
await coordinator.stop()
# Poll for completion with timeout instead of fixed sleep
deadline = asyncio.get_event_loop().time() + 5.0 # 5 second timeout
while asyncio.get_event_loop().time() < deadline:
all_completed = True
for i in range(157, 162):
item = queue_manager.get_item(i)
if item is None or item.status != QueueItemStatus.COMPLETED:
all_completed = False
break
if all_completed:
break
await asyncio.sleep(0.05)
await coordinator.stop()
task.cancel()
try:
await task