--- kind: pipeline type: docker name: test steps: - name: test image: golang:1.20 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.20 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.51 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.20 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.6 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: 5c1451c70c23bc59afddc16533f63bb2eba4f12bcfed660b34d979cf86e7a9ce ...