# .woodpecker.yml # ----------------- # Build, publish, and deploy Python app when: event: [ push ] branch: [ main ] steps: - name: publish-image image: woodpeckerci/plugin-docker-buildx settings: platforms: linux/amd64 repo: git.badger-pirarucu.ts.net/mangamochi/manga-matcher registry: git.badger-pirarucu.ts.net username: from_secret: DOCKER_USER password: from_secret: DOCKER_PASSWORD tags: - latest - ${CI_COMMIT_SHA} when: event: [ push ] branch: [ main ] - name: deploy depends_on: [ publish-image ] image: alpine:3.20 environment: DEPLOY_USER: rov DEPLOY_HOST: mangamochi.badger-pirarucu.ts.net DEPLOY_PORT: 22 IMAGE: git.badger-pirarucu.ts.net/mangamochi/manga-matcher:${CI_COMMIT_SHA} DEPLOY_SSH_KEY: from_secret: DEPLOY_SSH_KEY commands: - echo "🚀 Deploying to $DEPLOY_HOST ..." - apk add --no-cache openssh-client docker-cli - mkdir -p ~/.ssh - echo "$DEPLOY_SSH_KEY" > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - ssh-keyscan -p $DEPLOY_PORT $DEPLOY_HOST >> ~/.ssh/known_hosts - > ssh -p $DEPLOY_PORT $DEPLOY_USER@$DEPLOY_HOST " docker pull $IMAGE && docker stop manga-matcher 2>/dev/null || true && docker rm manga-matcher 2>/dev/null || true && docker run -d --name manga-matcher --restart always -p 8000:8000 $IMAGE " when: event: [ push ] branch: [ main ]