diff --git a/.woodpecker.yml b/.woodpecker.yml index b4c6d96..420f3aa 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -23,13 +23,29 @@ steps: - echo "nameserver 1.0.0.1" >> /etc/resolv.conf - HOSTNAME=$(docker info --format "{{.Name}}") - echo "Deploying on $HOSTNAME" - - docker node ls >/dev/null 2>&1 || (echo "Runner must be on a Swarm manager" && exit 1) - - mkdir -p /mnt/data/nixc.us/woodpecker/production/db /mnt/data/nixc.us/woodpecker/production/data - - chmod -R 777 /mnt/data/nixc.us/woodpecker/production - - echo "Starting deployment in background - CI job will complete while services update" - - (sleep 5 && docker stack deploy --with-registry-auth -c stack.yml woodpecker) & - - sleep 3 - - echo "Deployment initiated successfully - CI job completing" + - docker node ls || (echo "Runner must be on a Swarm manager" && exit 1) + - echo "Checking for existing networks..." + - docker network ls + - echo "Creating required directories..." + - mkdir -p /mnt/data/nixc.us/woodpecker/production/db /mnt/data/nixc.us/woodpecker/production/data || true + - chmod -R 777 /mnt/data/nixc.us/woodpecker/production || true + - echo "Ensuring traefik network exists..." + - docker network create --driver=overlay --attachable traefik || true + - echo "Removing any existing stack..." + - docker stack rm woodpecker || true + - echo "Waiting for cleanup..." + - sleep 10 + - echo "Deploying stack..." + - docker stack deploy --with-registry-auth -c stack.yml woodpecker + - echo "Waiting for services to start..." + - sleep 15 + - echo "Service status:" + - docker service ls | grep woodpecker + - echo "Checking logs for server:" + - docker service logs --tail 10 woodpecker_server || true + - echo "Checking logs for database:" + - docker service logs --tail 10 woodpecker_db || true + - echo "Deployment completed" when: branch: main event: [push] \ No newline at end of file diff --git a/stack.yml b/stack.yml index 49727c8..3e7f787 100644 --- a/stack.yml +++ b/stack.yml @@ -20,7 +20,7 @@ services: replicas: 1 placement: constraints: - - node.hostname == macmini1 + - node.role == manager labels: - "traefik.enable=false" update_config: @@ -63,7 +63,7 @@ services: replicas: 1 placement: constraints: - - node.hostname == macmini1 + - node.role == manager labels: # Web UI Configuration traefik.enable: "true"