github.com/goreleaser/goreleaser@v1.25.1/www/docs/ci/drone.md (about)

     1  # Drone
     2  
     3  By default, drone does not fetch tags. `plugins/git` is used with default
     4  values, in most cases we'll need overwrite the `clone` step enabling tags, so
     5  `goreleaser` work correctly.
     6  
     7  In this example we're creating a new release every time a new tag is pushed.
     8  Note that you'll need to enable `tags` in repo settings and add `github_token`
     9  secret.
    10  
    11  #### 1.x
    12  ```yaml
    13  # .drone.yml
    14  
    15  kind: pipeline
    16  name: default
    17  
    18  steps:
    19    - name: fetch
    20      image: docker:git
    21      commands:
    22        - git fetch --tags
    23  
    24    - name: test
    25      image: golang
    26      commands:
    27        - go test -race -v ./... -cover
    28  
    29    - name: release
    30      image: goreleaser/goreleaser
    31      environment:
    32        GITHUB_TOKEN:
    33          from_secret: github_token
    34      commands:
    35        - goreleaser release
    36      when:
    37        event: tag
    38  ```
    39  
    40  In case you need to build docker image, use [Docker-In-Docker](https://docs.drone.io/pipeline/docker/examples/services/docker_dind/) (DIND)
    41  
    42  ```yaml
    43  ---
    44  kind: pipeline
    45  name: default
    46  trigger:
    47    ref:
    48      - refs/tags/*
    49  
    50  services:
    51    - name: docker
    52      image: docker:dind
    53      privileged: true
    54      volumes:
    55        - name: dockersock
    56          path: /var/run
    57  
    58  steps:
    59    - name: fetch
    60      image: docker:git
    61      commands:
    62        - git fetch --tags
    63  
    64    - name: test
    65      image: golang
    66      commands:
    67        - go test -race -v ./... -cover
    68  
    69    - name: release
    70      image: goreleaser/goreleaser
    71      environment:
    72        GITHUB_TOKEN:
    73          from_secret: github_token
    74      volumes:
    75        - name: dockersock
    76          path: /var/run
    77      commands:
    78        - goreleaser release
    79      when:
    80        event: tag
    81  
    82  volumes:
    83    - name: dockersock
    84      temp: {}
    85  ```
    86  
    87  Note: to use DIND you have to set repo as 'trusted'. To mark repository as trusted:
    88  
    89  1. contact your Drone's admin
    90  2. or set your [user as administrator](https://docs.drone.io/server/user/admin/) and then enable 'trusted' switch in repository settings UI
    91  
    92  #### 0.8
    93  ```yaml
    94  pipeline:
    95    clone:
    96      image: plugins/git
    97      tags: true
    98  
    99    test:
   100      image: golang:1.10
   101      commands:
   102        - go test ./... -race
   103  
   104    release:
   105      image: golang:1.10
   106      secrets: [github_token]
   107      commands:
   108        curl -sfL https://goreleaser.com/static/run | bash
   109      when:
   110        event: tag
   111  ```
   112