workspace:
  base: /go/src
  path: github.com/appleboy/drone-telegram

clone:
  git:
    image: plugins/git
    depth: 50
    tags: true

pipeline:
  test:
    image: appleboy/golang-testing:1.9.2
    pull: true
    secrets: [ telegram_token, telegram_to ]
    commands:
      - make vet
      - make lint
      - make test-vendor
      - make misspell-check
      - make test
      - make coverage

  build_linux_amd64:
    image: appleboy/golang-testing:1.9.2
    pull: true
    group: build
    commands:
      - make build_linux_amd64

  build_linux_i386:
    image: appleboy/golang-testing:1.9.2
    pull: true
    group: build
    commands:
      - make build_linux_i386

  build_linux_arm64:
    image: appleboy/golang-testing:1.9.2
    pull: true
    group: build
    commands:
      - make build_linux_arm64

  build_linux_arm:
    image: appleboy/golang-testing:1.9.2
    pull: true
    group: build
    commands:
      - make build_linux_arm

  codecov:
    image: robertstettner/drone-codecov
    secrets: [ codecov_token ]
    files:
      - .cover/coverage.txt
    when:
      event: [ push, pull_request ]

  release:
    image: appleboy/golang-testing:1.9.2
    pull: true
    commands:
      - make release
    when:
      event: [ tag ]

  publish_alpine:
    image: plugins/docker
    group: release
    pull: true
    dockerfile: Dockerfile.alpine
    secrets: [ docker_username, docker_password ]
    default_tags: true
    default_suffix: alpine
    repo: ${DRONE_REPO}
    when:
      event: [ push, tag ]
      local: false

  publish_linux_amd64:
    image: plugins/docker:17.05
    pull: true
    secrets: [ docker_username, docker_password ]
    group: release
    repo: ${DRONE_REPO}
    auto_tag: true
    dockerfile: Dockerfile
    when:
      event: [ push, tag ]
      local: false

  publish_linux_i386:
    image: plugins/docker:17.05
    pull: true
    secrets: [ docker_username, docker_password ]
    group: release
    repo: ${DRONE_REPO}
    auto_tag: true
    auto_tag_suffix: i386
    dockerfile: Dockerfile.i386
    when:
      event: [ push, tag ]
      local: false

  publish_linux_arm64:
    image: plugins/docker:17.05
    pull: true
    secrets: [ docker_username, docker_password ]
    group: release
    repo: ${DRONE_REPO}
    auto_tag: true
    auto_tag_suffix: arm64
    dockerfile: Dockerfile.arm64
    when:
      event: [ push, tag ]
      local: false

  publish_linux_arm:
    image: plugins/docker:17.05
    pull: true
    secrets: [ docker_username, docker_password ]
    group: release
    repo: ${DRONE_REPO}
    auto_tag: true
    auto_tag_suffix: arm
    dockerfile: Dockerfile.arm
    when:
      event: [ push, tag ]
      local: false

  github:
    image: plugins/github-release
    pull: true
    group: release
    secrets: [ github_release_api_key ]
    files:
      - dist/release/*
    when:
      event: [ tag ]

  discord:
    image: appleboy/drone-discord
    pull: true
    secrets: [ discord_webhook_id, discord_webhook_token ]
    when:
      status: [ changed, failure ]
