kind: pipeline type: docker name: default steps: - name: test pull: if-not-exists image: golang:1.20 commands: - go test ./... - name: build pull: if-not-exists image: golang:1.20 environment: TELEGRAM_TOKEN: from_secret: TELEGRAM_TOKEN POSTGRES_URL_CONNECT: from_secret: POSTGRES_URL_CONNECT settings: envs: [ TELEGRAM_TOKEN,POSTGRES_URL_CONNECT ] commands: - CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o butler cmd/butler/main.go - touch .env - echo TELEGRAM_TOKEN=$${TELEGRAM_TOKEN} >> .env - echo POSTGRES_URL_CONNECT=$${POSTGRES_URL_CONNECT} >> .env - name: copy to server pull: if-not-exists image: appleboy/drone-scp settings: host: from_secret: SSH_IP username: from_secret: SSH_USER key: from_secret: SSH_KEY port: from_secret: SSH_PORT target: /home/crab/deploys/butler_bot source: - .env - build/ci/Dockerfile - deploy/docker-compose.yml - migrations - butler rm: true - name: deploy pull: if-not-exists image: appleboy/drone-ssh settings: host: from_secret: SSH_IP username: from_secret: SSH_USER key: from_secret: SSH_KEY port: from_secret: SSH_PORT script: - cd /home/crab/deploys/butler_bot - mv build/ci/Dockerfile . - mv deploy/docker-compose.yml . - rm -r build deploy # TODO: # scp bin, Dockerfile, docker-compose # create .env from secrets # run migrations # restart container trigger: event: - push