Dawid Wysokiński
a52493542e
All checks were successful
continuous-integration/drone/push Build is passing
181 lines
3.2 KiB
YAML
181 lines
3.2 KiB
YAML
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: test
|
|
|
|
steps:
|
|
- name: test
|
|
image: golang:1.19
|
|
environment:
|
|
TESTS_DB_DSN: postgres://postgres:twhelptest@database:5432/twhelptest?sslmode=disable
|
|
commands:
|
|
- make generate
|
|
- go test -race -coverprofile=coverage.txt -covermode=atomic ./...
|
|
|
|
services:
|
|
- name: database
|
|
image: postgres:14.6
|
|
environment:
|
|
POSTGRES_DB: twhelptest
|
|
POSTGRES_PASSWORD: twhelptest
|
|
|
|
trigger:
|
|
event:
|
|
- push
|
|
- pull_request
|
|
branch:
|
|
- master
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: check-go-mod
|
|
|
|
steps:
|
|
- name: go.mod
|
|
image: golang:1.19
|
|
commands:
|
|
- make generate
|
|
- go mod tidy
|
|
- git diff --exit-code go.mod
|
|
|
|
trigger:
|
|
event:
|
|
- push
|
|
- pull_request
|
|
branch:
|
|
- master
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: golangci-lint
|
|
|
|
steps:
|
|
- name: golangci-lint
|
|
image: golangci/golangci-lint:v1.50
|
|
commands:
|
|
- make generate
|
|
- golangci-lint run
|
|
|
|
trigger:
|
|
event:
|
|
- push
|
|
- pull_request
|
|
branch:
|
|
- master
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: govulncheck
|
|
|
|
platform:
|
|
os: linux
|
|
arch: amd64
|
|
|
|
steps:
|
|
- name: govulncheck
|
|
image: golang:1.19
|
|
commands:
|
|
- make generate
|
|
- go install golang.org/x/vuln/cmd/govulncheck@latest
|
|
- govulncheck ./...
|
|
|
|
trigger:
|
|
event:
|
|
- cron
|
|
cron:
|
|
- govulncheck
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: linux-amd64
|
|
|
|
platform:
|
|
os: linux
|
|
arch: amd64
|
|
|
|
steps:
|
|
- name: publish
|
|
image: plugins/docker
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
registry: gitea.dwysokinski.me
|
|
repo: gitea.dwysokinski.me/twhelp-packages/core
|
|
auto_tag: true
|
|
auto_tag_suffix: linux-amd64
|
|
dockerfile: ./build/docker/twhelp/prod/Dockerfile
|
|
build_args_from_env: [DRONE_TAG]
|
|
|
|
trigger:
|
|
event:
|
|
- tag
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: manifest
|
|
|
|
steps:
|
|
- name: manifest
|
|
image: plugins/manifest
|
|
settings:
|
|
auto_tag: "true"
|
|
ignore_missing: "true"
|
|
spec: ./build/docker/twhelp/prod/manifest.tmpl
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
- name: manifest-latest
|
|
image: plugins/manifest
|
|
settings:
|
|
tags: latest
|
|
ignore_missing: "true"
|
|
spec: ./build/docker/twhelp/prod/manifest.tmpl
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
|
|
trigger:
|
|
event:
|
|
- tag
|
|
|
|
depends_on:
|
|
- linux-amd64
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: deploy
|
|
|
|
steps:
|
|
- name: deploy-k8s
|
|
image: alpine/k8s:1.25.3
|
|
environment:
|
|
KUBECONFIG:
|
|
from_secret: kubeconfig
|
|
commands:
|
|
- "mkdir ~/.kube && echo \"$KUBECONFIG\" > ~/.kube/twhelp"
|
|
- "cd ./k8s/overlays/prod && kustomize edit set image twhelp=gitea.dwysokinski.me/twhelp-packages/core:${DRONE_TAG##v} && cd ../../.."
|
|
- "kubectl --kubeconfig ~/.kube/twhelp -n twhelp delete jobs.batch twhelp-migrations-job || true"
|
|
- kustomize build ./k8s/overlays/prod | kubectl --kubeconfig ~/.kube/twhelp apply -n twhelp -f -
|
|
|
|
trigger:
|
|
event:
|
|
- tag
|
|
|
|
depends_on:
|
|
- manifest
|
|
---
|
|
kind: signature
|
|
hmac: 72a903d066ebaecdaeb80fd02b7cdf2278517a28bd9667e063f58fba93b970bd
|
|
|
|
...
|