workspace:
  base: /srv/app
  path: src/code.gitea.io/gitea

pipeline:
  clone:
    image: plugins/git
    tags: true

  test:
    image: webhippie/golang:edge
    pull: true
    environment:
      TAGS: bindata sqlite
      GOPATH: /srv/app
    commands:
      - apk -U add openssh-client
      - make clean
      - make generate
      - make vet
      - make lint
      - make test
      - make build
    when:
      event: [ push, tag, pull_request ]

  test-mysql:
    image: webhippie/golang:edge
    pull: true
    environment:
      TAGS: bindata
      GOPATH: /srv/app
    commands:
      - make test-mysql
    when:
      event: [ push, tag, pull_request ]

  test-pgsql:
    image: webhippie/golang:edge
    pull: true
    environment:
      TAGS: bindata
      GOPATH: /srv/app
    commands:
      - make test-pgsql
    when:
      event: [ push, tag, pull_request ]

  static:
    image: karalabe/xgo-latest:latest
    pull: true
    environment:
      TAGS: bindata sqlite
      GOPATH: /srv/app
    commands:
      - make release
    when:
      event: [ push, tag, pull_request ]

  coverage:
    image: plugins/coverage
    server: https://coverage.gitea.io
    when:
      event: [ push, tag, pull_request ]

  docker:
    image: plugins/docker
    repo: gitea/gitea
    tags: [ '${DRONE_TAG##v}' ]
    when:
      event: [ tag ]
      branch: [ refs/tags/* ]

  docker:
    image: plugins/docker
    repo: gitea/gitea
    tags: [ '${DRONE_BRANCH##release/v}' ]
    when:
      event: [ push ]
      branch: [ release/* ]

  docker:
    image: plugins/docker
    repo: gitea/gitea
    tags: [ 'latest' ]
    when:
      event: [ push ]
      branch: [ master ]

  release:
    image: plugins/s3
    path_style: true
    strip_prefix: dist/release/
    source: dist/release/*
    target: /gitea/${DRONE_TAG##v}
    when:
      event: [ tag ]
      branch: [ refs/tags/* ]

  release:
    image: plugins/s3
    path_style: true
    strip_prefix: dist/release/
    source: dist/release/*
    target: /gitea/${DRONE_BRANCH##release/v}
    when:
      event: [ push ]
      branch: [ release/* ]

  release:
    image: plugins/s3
    path_style: true
    strip_prefix: dist/release/
    source: dist/release/*
    target: /gitea/master
    when:
      event: [ push ]
      branch: [ master ]

  github:
    image: plugins/github-release
    files:
      - dist/release/*
    when:
      event: [ tag ]
      branch: [ refs/tags/* ]

  gitter:
    image: plugins/gitter

services:
  mysql:
    image: mysql:5.7
    environment:
      - MYSQL_DATABASE=test
      - MYSQL_ALLOW_EMPTY_PASSWORD=yes
    when:
      event: [ push, tag, pull_request ]

  pgsql:
    image: postgres:9.5
    environment:
      - POSTGRES_DB=test
    when:
      event: [ push, tag, pull_request ]