116 lines
2.1 KiB
YAML
116 lines
2.1 KiB
YAML
|
---
|
||
|
kind: pipeline
|
||
|
type: docker
|
||
|
name: test-pipeline
|
||
|
|
||
|
platform:
|
||
|
os: linux
|
||
|
arch: amd64
|
||
|
|
||
|
steps:
|
||
|
- name: environment
|
||
|
image: golang:1.19
|
||
|
commands:
|
||
|
- go version
|
||
|
- go env
|
||
|
volumes:
|
||
|
- name: gopath
|
||
|
path: /go
|
||
|
|
||
|
- name: tools
|
||
|
image: golang:1.19
|
||
|
commands:
|
||
|
- curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.50.1
|
||
|
- go install github.com/tebeka/go2xunit@latest
|
||
|
- go install github.com/t-yuki/gocover-cobertura@latest
|
||
|
volumes:
|
||
|
- name: gopath
|
||
|
path: /go
|
||
|
depends_on:
|
||
|
- environment
|
||
|
|
||
|
- name: tidy
|
||
|
image: golang:1.19
|
||
|
commands:
|
||
|
- go mod tidy
|
||
|
- git diff --exit-code -- go.mod go.sum
|
||
|
volumes:
|
||
|
- name: gopath
|
||
|
path: /go
|
||
|
depends_on:
|
||
|
- tools
|
||
|
|
||
|
- name: lint
|
||
|
image: golang:1.19
|
||
|
commands:
|
||
|
- echo 'Running linting'
|
||
|
- golangci-lint run
|
||
|
volumes:
|
||
|
- name: gopath
|
||
|
path: /go
|
||
|
depends_on:
|
||
|
- tools
|
||
|
|
||
|
- name: test
|
||
|
image: golang:1.19
|
||
|
commands:
|
||
|
- go test -cover -v ./...
|
||
|
volumes:
|
||
|
- name: gopath
|
||
|
path: /go
|
||
|
depends_on:
|
||
|
- tools
|
||
|
|
||
|
- name: send telegram notification
|
||
|
image: appleboy/drone-telegram
|
||
|
settings:
|
||
|
token:
|
||
|
from_secret: telegram_token
|
||
|
to:
|
||
|
from_secret: telegram_chat_id
|
||
|
message: >
|
||
|
{{#success build.status}}
|
||
|
✅ Build *#{{build.number}}* of *{{repo.name}}* succeeded.
|
||
|
{{else}}
|
||
|
❌ Build *#{{build.number}}* of *{{repo.name}}* failed.
|
||
|
{{/success}}
|
||
|
|
||
|
📝 Commit on *{{commit.branch}}*:
|
||
|
|
||
|
``` {{commit.message}} ```
|
||
|
|
||
|
🌐 {{ build.link }}
|
||
|
format: markdown
|
||
|
when:
|
||
|
status:
|
||
|
- failure
|
||
|
- success
|
||
|
depends_on:
|
||
|
- test
|
||
|
- lint
|
||
|
- tidy
|
||
|
|
||
|
- name: docker
|
||
|
image: plugins/docker
|
||
|
settings:
|
||
|
dockerfile: Dockerfile
|
||
|
repo: registry.dev.m-and-m.ovh/m-and-m/tesla
|
||
|
username:
|
||
|
from_secret: registry_username
|
||
|
password:
|
||
|
from_secret: registry_password
|
||
|
registry: registry.dev.m-and-m.ovh
|
||
|
debug: true
|
||
|
tags:
|
||
|
- latest
|
||
|
when:
|
||
|
status:
|
||
|
- success
|
||
|
depends_on:
|
||
|
- test
|
||
|
- lint
|
||
|
- tidy
|
||
|
|
||
|
volumes:
|
||
|
- name: gopath
|
||
|
temp: {}
|