# Woodpecker CI Pipeline for Soleprint # Showcases custom build step: generates deployable code from templates steps: # Custom step: Generate deployable code from soleprint templates # build.py assembles the soleprint instance for a specific config (amar) generate: image: python:3.11-slim commands: - pip install pyyaml jinja2 - python build.py -cfg amar - ls -la gen/ # Build Docker image from generated code build: image: docker:24-dind commands: - cd gen - docker build -t registry.mcrn.ar/soleprint:${CI_COMMIT_SHA::7} . - docker tag registry.mcrn.ar/soleprint:${CI_COMMIT_SHA::7} registry.mcrn.ar/soleprint:latest volumes: - /var/run/docker.sock:/var/run/docker.sock when: event: push branch: main # Push to private registry push: image: docker:24-dind commands: - docker push registry.mcrn.ar/soleprint:${CI_COMMIT_SHA::7} - docker push registry.mcrn.ar/soleprint:latest volumes: - /var/run/docker.sock:/var/run/docker.sock when: event: push branch: main # Deploy to server deploy: image: appleboy/drone-ssh settings: host: mcrn.ar username: mariano key: from_secret: deploy_key script: - docker network create mainroom_default 2>/dev/null || true - cd ~/soleprint && git pull origin main - cd ~/soleprint/gen - | if [ ! -f .env ]; then echo "DEPLOYMENT_NAME=soleprint" > .env echo "SOLEPRINT_PORT=12000" >> .env fi - docker pull registry.mcrn.ar/soleprint:latest - docker compose down || true - docker compose up -d when: event: push branch: main