woodpecker/.woodpecker.yml

55 lines
2.0 KiB
YAML

# Woodpecker CI Configuration for Woodpecker Self-Deploy
labels:
location: manager
clone:
git:
image: woodpeckerci/plugin-git
settings:
partial: false
depth: 1
when:
branch: [main]
steps:
deploy-woodpecker:
name: deploy-woodpecker
image: woodpeckerci/plugin-docker-buildx
volumes:
- /var/run/docker.sock:/var/run/docker.sock
commands:
- echo "nameserver 1.1.1.1" > /etc/resolv.conf
- echo "nameserver 1.0.0.1" >> /etc/resolv.conf
- HOSTNAME=$(docker info --format "{{.Name}}")
- echo "Deploying on $HOSTNAME"
- docker node ls || (echo "Runner must be on a Swarm manager" && exit 1)
- echo "Checking for existing networks..."
- docker network ls
- echo "Checking if required directories exist..."
- ls -la /mnt/data/nixc.us/woodpecker/production/ || echo "Directory doesn't exist"
- 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 "Verifying directories..."
- ls -la /mnt/data/nixc.us/woodpecker/production/
- 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]