kind: pipeline
type: docker
name: default

steps:
  - name: build
    image: golang
    commands:
      - set GOOS=linux
      - set GOARCH=amd64
      - set CGO_ENABLED=0
      - go build -a -ldflags '-extldflags "-static"' -o evening_detective_server cmd/evening_detective_server/main.go

  - name: test
    image: golang
    commands:
      - go test ./...

  - name: scp
    image: appleboy/drone-scp
    settings:
      host:
        from_secret: server_ip
      username:
        from_secret: ssh_user
      key:
        from_secret: ssh_key
      port:
        from_secret: ssh_port
      target:
        - deploys/evening_detective_server
      source:
        - evening_detective_server
        - docker-compose.yml
        - Dockerfile
      rm: true

  - name: deploy
    image: appleboy/drone-ssh
    settings:
      host:
        from_secret: server_ip
      username:
        from_secret: ssh_user
      key:
        from_secret: ssh_key
      port:
        from_secret: ssh_port
      command_timeout: 10s
      script:
        - cd deploys/evening_detective_server
        - docker-compose up -d --force-recreate

trigger:
  event:
    - push
