--- ### Drone configuration file for GoToSocial. ### Connects to https://drone.superseriousbusiness.org to perform testing, linting, and automatic builds/pushes to docker. ### ### For documentation on drone, see: https://docs.drone.io/ ### For documentation on drone docker pipelines in particular: https://docs.drone.io/pipeline/docker/overview/ kind: pipeline type: docker name: default steps: # We use golangci-lint for linting. # See: https://golangci-lint.run/ - name: lint image: golangci/golangci-lint:v1.42.1 volumes: - name: go-build-cache path: /root/.cache/go-build - name: golangci-lint-cache path: /root/.cache/golangci-lint commands: - golangci-lint run --timeout 5m0s --tests=false --verbose when: event: include: - pull_request - name: test image: golang:1.17.1-alpine3.14 volumes: - name: go-build-cache path: /root/.cache/go-build commands: - CGO_ENABLED=0 GTS_DB_TYPE="sqlite" GTS_DB_ADDRESS=":memory:" go test -count 1 -p 1 ./... - CGO_ENABLED=0 GTS_DB_TYPE="postgres" GTS_DB_ADDRESS="postgres" go test -count 1 -p 1 ./... when: event: include: - pull_request - name: publish image: plugins/docker settings: auto_tag: true username: gotosocial password: from_secret: gts_docker_password repo: superseriousbusiness/gotosocial tags: latest when: event: exclude: - pull_request # We need a postgres service running for the test step. # See: https://docs.drone.io/pipeline/docker/syntax/services/ services: - name: postgres image: postgres environment: POSTGRES_PASSWORD: postgres when: event: include: - pull_request # We can speed up builds significantly by caching build artifacts between runs. # See: https://docs.drone.io/pipeline/docker/syntax/volumes/host/ volumes: - name: go-build-cache host: path: /drone/gotosocial/go-build - name: golangci-lint-cache host: path: /drone/gotosocial/golangci-lint trigger: repo: exclude: - "*" include: - superseriousbusiness/gotosocial - NyaaaWhatsUpDoc/gotosocial - f0x52/gotosocial --- kind: signature hmac: 703dad12a9e92cbd415b23d82620608830a60a70168527118e2e9aab145f1099 ...