# .woodpecker.yml when: event: [ push, pull_request ] branch: [ main, develop, feat/*, feature/* ] # Pipeline steps 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, pull_request ] - name: deploy 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} secrets: [ DEPLOY_SSH_KEY ] commands: - echo "🚀 Deploying to $DEPLOY_HOST ..." - apk add --no-cache openssh-client docker-cli # Setup SSH key - mkdir -p ~/.ssh - echo "$DEPLOY_SSH_KEY" > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa # Add host to known_hosts to prevent prompt - ssh-keyscan -p $DEPLOY_PORT $DEPLOY_HOST >> ~/.ssh/known_hosts # Run deployment commands remotely - > ssh -p $DEPLOY_PORT $DEPLOY_USER@$DEPLOY_HOST " docker pull $IMAGE && docker stop manga-matcher || true && docker rm manga-matcher || true && docker run -d --name manga-matcher --restart always -p 8000:8000 $IMAGE " when: event: [ push, pull_request ]