Dawid Wysokiński
3adb5f910a
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #19
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:sessions@database:5432/sessions?sslmode=disable
|
|
commands:
|
|
- make generate
|
|
- go test -race -coverprofile=coverage.txt -covermode=atomic ./...
|
|
|
|
services:
|
|
- name: database
|
|
image: postgres:14.6
|
|
environment:
|
|
POSTGRES_DB: sessions
|
|
POSTGRES_PASSWORD: sessions
|
|
|
|
trigger:
|
|
event:
|
|
- push
|
|
- pull_request
|
|
branch:
|
|
- master
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: check-go-mod
|
|
|
|
steps:
|
|
- name: check 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: run 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/sessions
|
|
auto_tag: true
|
|
auto_tag_suffix: linux-amd64
|
|
dockerfile: ./build/docker/sessions/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/sessions/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/sessions/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 sessions=gitea.dwysokinski.me/twhelp-packages/sessions:${DRONE_TAG##v} && cd ../../.."
|
|
- "kubectl --kubeconfig ~/.kube/twhelp -n twhelp delete jobs.batch sessions-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: 7262c4a4ae8fd7dfd0f31bd3d1177a42d0b116fc4c9737573c1207072135c14b
|
|
|
|
...
|