--- kind: pipeline type: docker name: default golang-image: &golang-image golang:1.17-alpine gobin-volume: &gobin-volume name: gobin path: /go/bin usr-volume: &usr-volume name: usr path: /usr deps-command: &deps-command apk add build-base git steps: - name: tags image: alpine/git commands: - git fetch --tags - name: submodules image: alpine/git commands: - git submodule init - git submodule update depends_on: - tags - name: install-tools image: *golang-image volumes: - *gobin-volume - *usr-volume commands: - *deps-command - make install-tools - name: lint image: *golang-image volumes: - *gobin-volume - *usr-volume commands: - make lint depends_on: - tags - submodules - install-tools - name: test image: *golang-image volumes: - *gobin-volume - *usr-volume commands: - make test depends_on: - install-tools - tags - lint - submodules - name: build image: *golang-image volumes: - *gobin-volume - *usr-volume commands: - make build depends_on: - lint - test when: event: exclude: - tag - name: release image: *golang-image volumes: - *gobin-volume - *usr-volume environment: GITHUB_TOKEN: from_secret: github_token commands: - goreleaser release --rm-dist --parallelism=1 depends_on: - lint - test when: event: - tag volumes: - name: gobin temp: {} - name: usr temp: {}