Files
Acrybot/.woodpecker.yml
BigGamerGary 53458625c9
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
More syntax fixing
2025-08-13 21:18:47 +10:00

59 lines
2.8 KiB
YAML

kind: pipeline
type: docker # All steps will run in Docker containers.
name: update-and-restart-discord-bot # A descriptive name for the pipeline.
when:
- branch: main # This pipeline triggers on pushes to the 'main' branch.
event: push
steps:
- name: pull-latest-source # Step 1: Pull the latest code from Gitea.
image: alpine/git # A lightweight image that includes the 'git' command.
volumes:
# Mount your bot's source code directory with read-write permissions.
# This is crucial for 'git pull' to update the files on your host machine.
- /home/gary/Discord/Acrybot:/app:rw # ':rw' ensures read-write access.
commands:
- echo "--- Pulling latest source code from Git ---"
- cd /app # Navigate to the mounted project directory.
# Configure Git to trust the mounted directory to avoid 'unsafe repository' warnings.
- git config --global --add safe.directory /app
- git pull # Pull the latest changes from the 'main' branch.
- echo "Source code updated."
- ls -la /app # Verify files were updated.
- name: manage-bot-containers # Step 2: Manage your bot's Docker containers.
image: docker # This image provides the 'docker compose' CLI.
volumes:
# Mount the Docker socket from the host to allow control over host Docker daemon.
- /var/run/docker.sock:/var/run/docker.sock
# Mount your Docker Compose project directory into the container.
- /home/gary/Discord/Acrybot:/app
environment:
# IMPORTANT: Explicitly set the Docker Compose project name.
# This ensures containers are managed with the 'Acrybot' prefix,
# matching your existing containers.
# If your actual project name (from 'docker inspect <container_id>')
# is different, replace 'Acrybot' here.
COMPOSE_PROJECT_NAME: acrybot
commands:
- echo "--- Managing Docker Compose services ---"
- cd /app # Navigate to the mounted project directory.
# Stop the specific Discord bot service.
# Replace 'your_bot_service_name' with the EXACT service name from your docker-compose.yml.
- echo "--- Stopping Discord bot service your_bot_service_name ---"
- docker compose stop python-app
# Bring the specific Discord bot service back up.
# '--build' is essential if your docker-compose.yml uses 'build: .' to create the image,
# as it ensures the image is rebuilt with the newly pulled source code.
- echo "--- Bringing Discord bot service up your_bot_service_name ---"
- docker compose up -d your_bot_service_name --build
- echo "--- Verification after actions ---"
- docker compose ps -a # Show all services in this project again.
# Directly grep for the expected container name to confirm.
- docker ps -a | grep Acrybot-python-app