--- kind: pipeline type: docker name: test steps: - name: test image: golang:1.20 environment: TESTS_DB_DSN: postgres://postgres:twhelp@database:5432/twhelp?sslmode=disable TESTS_AMQP_URI: amqp://twhelp:twhelp@rmq:5672/ commands: - make generate - go test -race -coverprofile=coverage.txt -covermode=atomic ./... services: - name: database image: postgres:14.7 environment: POSTGRES_DB: twhelp POSTGRES_PASSWORD: twhelp - name: rmq image: rabbitmq:3.11.9-alpine environment: RABBITMQ_DEFAULT_USER: twhelp RABBITMQ_DEFAULT_PASS: twhelp trigger: event: - push - pull_request branch: - master --- kind: pipeline type: docker name: check-go-mod steps: - name: 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: golangci-lint image: golangci/golangci-lint:v1.52 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/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.6 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: fa9b0512365e2a37ef267087213035caa8c4163312bb0656e016fc71a35bd221 ...