55 lines
2.0 KiB
YAML
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] |