pcmt/.drone.yml
leo 77a5f190a2
All checks were successful
continuous-integration/drone/push Build is passing
ci: add golangci-lint|godocs pipeline
2023-04-19 23:05:30 +02:00

245 lines
5.1 KiB
YAML

---
kind: pipeline
type: docker
name: test archlinux
platform:
os: linux
arch: amd64
node:
r: as
trigger:
branch: [development, "feature-**"]
event: push
environment:
CGO_ENABLED: 0
steps:
- name: pull
image: docker.io/immawanderer/archlinux-go:linux-amd64
pull: always
depends_on: [clone]
commands:
- go version
- name: go mod tidy
image: docker.io/immawanderer/archlinux-go:linux-amd64
depends_on: [pull]
volumes:
- name: gopath
path: /go
commands:
- go mod tidy
- git status --porcelain
# run Go mod tidy prior to committing
- test -z "$(git status --porcelain)"
- name: go fmt
image: docker.io/immawanderer/archlinux-go:linux-amd64
depends_on: [go mod tidy]
volumes:
- name: gopath
path: /go
commands:
- go fmt ./...
- git status --porcelain
# unformatted Go code
- test -z "$(git status --porcelain)"
- name: go vet
image: docker.io/immawanderer/archlinux-go:linux-amd64
depends_on: [go mod tidy]
volumes:
- name: gopath
path: /go
commands:
- go vet ./...
- name: npm i
image: docker.io/immawanderer/archlinux-go:linux-amd64
depends_on: [go fmt, go vet]
volumes:
- name: gopath
path: /go
commands:
- mkdir -pv static
- pacman -Sy && pacman -S --noconfirm --needed npm
- npm i
- npx tailwindcss -i ./assets/input.css -o ./static/pcmt.css --minify
- name: go build
image: docker.io/immawanderer/archlinux-go:linux-amd64
depends_on: [go fmt, go vet, npm i]
volumes:
- name: gopath
path: /go
commands:
- go build -v .
- name: go test
image: docker.io/immawanderer/archlinux-go:linux-amd64
depends_on: [go fmt, go vet, npm i]
volumes:
- name: gopath
path: /go
commands:
- go test -cover ./...
volumes:
- name: gopath
temp: {}
---
kind: pipeline
type: docker
name: test alpine
platform:
os: linux
arch: amd64
node:
r: as
trigger:
branch: [development, "feature-**"]
event: push
environment:
CGO_ENABLED: 0
steps:
- name: pull
image: docker.io/library/golang:1.20.3-alpine3.17
depends_on: [clone]
commands:
- go version
- name: go mod tidy
image: docker.io/library/golang:1.20.3-alpine3.17
depends_on: [pull]
volumes:
- name: gopath
path: /go
commands:
- go mod tidy
- apk update -q && apk add -q --no-cache git
- git status --porcelain
# run Go mod tidy prior to committing
- test -z "$(git status --porcelain)"
- name: go fmt
image: docker.io/library/golang:1.20.3-alpine3.17
depends_on: [go mod tidy]
volumes:
- name: gopath
path: /go
commands:
- go fmt ./...
- apk update -q && apk add -q --no-cache git
- git status --porcelain
# unformatted Go code
- test -z "$(git status --porcelain)"
- name: go vet
image: docker.io/library/golang:1.20.3-alpine3.17
depends_on: [go mod tidy]
volumes:
- name: gopath
path: /go
commands:
- go vet ./...
- name: npm i
image: docker.io/library/golang:1.20.3-alpine3.17
depends_on: [go fmt, go vet]
volumes:
- name: gopath
path: /go
commands:
- mkdir -pv static
- apk update -q && apk add -q --no-cache npm
- npm i
- npx tailwindcss -i ./assets/input.css -o ./static/pcmt.css --minify
- name: go build
image: docker.io/library/golang:1.20.3-alpine3.17
depends_on: [go fmt, go vet, npm i]
volumes:
- name: gopath
path: /go
commands:
- go build -v .
- name: go test
image: docker.io/library/golang:1.20.3-alpine3.17
depends_on: [go fmt, go vet, npm i]
volumes:
- name: gopath
path: /go
commands:
- go test -cover ./...
volumes:
- name: gopath
temp: {}
---
kind: pipeline
type: docker
name: golangci-lint|godocs
platform:
os: linux
arch: amd64
node:
r: as
steps:
- name: golangci-lint
image: docker.io/library/golang:1.20.3-alpine3.17
pull: always
environment:
CGO_ENABLED: 0
commands:
- go install -v github.com/golangci/golangci-lint/cmd/golangci-lint@v1.52.2
- golangci-lint version
- golangci-lint run -v --timeout 5m
- name: goreportcard refresh
image: docker.io/curlimages/curl:8.00.1
depends_on: [golangci-lint]
pull: if-not-exists
trigger:
ref:
include:
- "refs/tags/**"
- refs/heads/development
exclude:
- "refs/pull/**"
commands:
- uname -r
- curl --version
- curl -sS -X POST -F \"repo=git.dotya.ml/${DRONE_REPO}\" https://goreportcard.com/checks -o /dev/null
- name: godocs refresh
image: docker.io/curlimages/curl:8.00.1
pull: if-not-exists
depends_on: [golangci-lint]
trigger:
ref:
include:
- "refs/tags/**"
- refs/heads/development
exclude: ["refs/pull/**"]
commands:
- uname -r
- curl --version
- curl -sS -X POST https://godocs.io/git.dotya.ml/${DRONE_REPO}/refresh -o /dev/null