---
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.5
POSTGRES_DB: twhelptest
POSTGRES_PASSWORD: twhelptest
trigger:
event:
- push
- pull_request
branch:
- master
name: check-go-mod
- name: check go.mod
- go mod tidy
- git diff --exit-code go.mod
name: golangci-lint
- name: run golangci-lint
image: golangci/golangci-lint:v1.49
- golangci-lint run
name: linux-amd64
platform:
os: linux
arch: amd64
- 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
- tag
name: manifest
- name: manifest
image: plugins/manifest
auto_tag: "true"
ignore_missing: "true"
spec: ./build/docker/twhelp/prod/manifest.tmpl
- name: manifest-latest
tags: latest
depends_on:
- linux-amd64
name: deploy
- name: deploy k8s
image: alpine/k8s:1.25.0
KUBECONFIG:
from_secret: kubeconfig
- "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 ../../.."
- kustomize build ./k8s/overlays/prod | kubectl --kubeconfig ~/.kube/twhelp apply -n twhelp -f -
- manifest