summaryrefslogtreecommitdiff
path: root/.drone.yml
diff options
context:
space:
mode:
authorLibravatar Tobi Smethurst <31960611+tsmethurst@users.noreply.github.com>2021-08-12 21:03:24 +0200
committerLibravatar GitHub <noreply@github.com>2021-08-12 21:03:24 +0200
commit98263a7de64269898a2f81207e38943b5c8e8653 (patch)
tree743c90f109a6c5d27832d1dcef2388d939f0f77a /.drone.yml
parentText duplication fix (#137) (diff)
downloadgotosocial-98263a7de64269898a2f81207e38943b5c8e8653.tar.xz
Grand test fixup (#138)
* start fixing up tests * fix up tests + automate with drone * fiddle with linting * messing about with drone.yml * some more fiddling * hmmm * add cache * add vendor directory * verbose * ci updates * update some little things * update sig
Diffstat (limited to '.drone.yml')
-rw-r--r--.drone.yml67
1 files changed, 52 insertions, 15 deletions
diff --git a/.drone.yml b/.drone.yml
index 672c3c821..57514a086 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -1,18 +1,55 @@
+---
+### 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: dockerpublish
+name: default
steps:
- - name: publish image
- image: plugins/docker
- settings:
- auto_tag: true
- username:
- from_secret: gts_docker_username
- password:
- from_secret: gts_docker_password
- repo: superseriousbusiness/gotosocial
- tags: latest
- when:
- event:
- exclude:
- - pull_request
+
+# We use golangci-lint for linting.
+# See: https://golangci-lint.run/
+- name: lint
+ image: golangci/golangci-lint:v1.41.1
+ commands:
+ - golangci-lint run --timeout 5m0s --tests=false --verbose
+
+- name: test
+ image: golang:1.16.4
+ environment:
+ GTS_DB_ADDRESS: postgres
+ commands:
+ # `-count 1` => run all tests at least once
+ # `-p 1` => run maximum one test at a time
+ # `./...` => run all tests
+ - go test -count 1 -p 1 ./...
+
+- 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
+
+services:
+# We need this postgres service running for the test step.
+# See: https://docs.drone.io/pipeline/docker/syntax/services/
+- name: postgres
+ image: postgres
+ environment:
+ POSTGRES_PASSWORD: postgres
+---
+kind: signature
+hmac: 78dd20d97444a9e2904552d56eb52f43ad30ba27e1d897a5ea6808971f9a0ae2
+
+...