diff --git a/.woodpecker.yml b/.woodpecker.yml index c8e6de3..f3aa875 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -19,12 +19,12 @@ steps: - 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. + - git pull origin main # 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. + # Changed image to 'docker:latest' to use the unhyphenated 'docker compose' + image: docker:latest volumes: # Mount the Docker socket from the host to allow control over host Docker daemon. - /var/run/docker.sock:/var/run/docker.sock @@ -34,22 +34,21 @@ steps: # 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 ') - # is different, replace 'Acrybot' here. - COMPOSE_PROJECT_NAME: acrybot + COMPOSE_PROJECT_NAME: Acrybot commands: - - echo "--- Managing Docker Compose services ---" - # 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 ---" + - echo "--- Stopping Discord bot service python-app ---" + # Stop the specific Discord bot service using the unhyphenated 'docker compose'. - docker compose stop python-app - - ls -la - # Bring the specific Discord bot service back up. + + - echo "--- Bringing Discord bot service up python-app ---" + # Bring the specific Discord bot service back up using the unhyphenated 'docker compose'. # '--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. - - docker compose up -d --build + - docker compose up -d python-app --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 + - echo "--- Verifying bot status ---" + # Get the container ID of the bot service to inspect its status and logs + - BOT_CONTAINER_ID=$(docker compose ps -q python-app) + - docker inspect --format='{{.State.Status}} (Exit Code: {{.State.ExitCode}})' "${BOT_CONTAINER_ID}" + - echo "--- Logs of Discord bot container (if it exited) ---" + - docker logs "${BOT_CONTAINER_ID}" # Fetch the logs of the bot container