---
kind: pipeline
name: default

steps:
  - name: tags
    image: alpine/git
    commands:
      - git fetch --tags

  - name: lint
    image: golangci/golangci-lint:v1.40.1
    commands:
      - make lint
    depends_on:
      - tags

  - name: test
    image: golang:1.16
    commands:
      - make test
    depends_on:
      - tags
      - lint

  - name: build
    image: goreleaser/goreleaser:v0.169.0
    commands:
      - make build
    depends_on:
      - tags
      - lint
      - test
    when:
      event:
        exclude:
          - tag

  - name: release
    image: goreleaser/goreleaser:v0.169.0
    environment:
      GITEA_TOKEN:
        from_secret: gitea_token
    commands:
      - goreleaser release --rm-dist
    depends_on:
      - tags
      - lint
      - test
    when:
      event:
        - tag
