Files
athens/.drone.yml
Ted Wexler 939e695526 Adds redis sentinel support (#1554)
* Adds redis sentinel support

Fixes #1553

* Fix redis-sentinel test hostnames

* Fix redis master name again

* Fix redis sentinel port in tests

* Upgrade the redis client

* Rmoeve accidental config change

* Fix default config

* Addresses review comments

* Add documentation on single flight mechanisms

* Fix spelling issues

* Fix formatting

Co-authored-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
2020-03-17 13:04:37 -07:00

198 lines
4.1 KiB
YAML

---
kind: pipeline
name: default
steps:
- name: download-dependencies
image: golang:1.14
commands:
# wait for services to be ready.
- cd scripts/liveness_probe
- go run .
- cd ../..
- go mod download
- go mod vendor # this is for when the Dockerfile gets built
environment:
GO111MODULE: on
GOPROXY: http://athens-proxy:3000
volumes:
- name: cache
path: /go
- name: build
image: golang:1.14
commands:
# build
- go build cmd/proxy/*.go
# test
- ./scripts/check_gofmt.sh
- go vet ./...
- go test -v ./...
# end to end test
- ./main & # run the just-built athens server
- sleep 3 # wait for it to spin up
- curl localhost:3000
- mkdir -p ~/happy
- mkdir -p ~/emptygopath # ensure the gopath has no modules cached.
- cd ~/happy
- git clone https://github.com/athens-artifacts/happy-path.git
- cd happy-path
- GOPATH=~/emptygopath GOPROXY=http://localhost:3000 go build
environment:
GO111MODULE: on
ATHENS_MONGO_STORAGE_URL: mongodb://mongo:27017
ATHENS_MINIO_ENDPOINT: minio:9000
REDIS_TEST_ENDPOINT: redis:6379
REDIS_SENTINEL_TEST_ENDPOINT: redis-sentinel:26379
REDIS_SENTINEL_TEST_MASTER_NAME: redis-1
REDIS_SENTINEL_TEST_PASSWORD: sekret
PROTECTED_REDIS_TEST_ENDPOINT: protectedredis:6380
ATHENS_PROTECTED_REDIS_PASSWORD: AthensPass1
GCS_SERVICE_ACCOUNT:
from_secret: GCS_SERVICE_ACCOUNT
GCS_PROJECT_ID:
from_secret: GOOGLE_CLOUD_PROJECT
ATHENS_AZURE_ACCOUNT_NAME:
from_secret: ATHENS_AZURE_ACCOUNT_NAME
ATHENS_AZURE_ACCOUNT_KEY:
from_secret: ATHENS_AZURE_ACCOUNT_KEY
when:
branch:
- master
event:
- push
- pull_request
volumes:
- name: cache
path: /go
- name: docker-latest
image: plugins/docker
settings:
username:
from_secret: DOCKER_USER
password:
from_secret: DOCKER_PASSWORD
repo: gomods/athens
tags:
- canary
dockerfile: cmd/proxy/Dockerfile
build_args:
- VERSION=${DRONE_COMMIT}
when:
branch:
- master
event:
- push
- name: docker-latest-commit-sha
image: plugins/docker
settings:
username:
from_secret: DOCKER_USER
password:
from_secret: DOCKER_PASSWORD
repo: gomods/athens-dev
tags:
- ${DRONE_COMMIT:0:7}
dockerfile: cmd/proxy/Dockerfile
build_args:
- VERSION=${DRONE_COMMIT}
when:
branch:
- master
event:
- push
- name: docker-release
image: plugins/docker
settings:
username:
from_secret: DOCKER_USER
password:
from_secret: DOCKER_PASSWORD
repo: gomods/athens
tags:
- ${DRONE_TAG}
- latest
dockerfile: cmd/proxy/Dockerfile
build_args:
- VERSION=${DRONE_TAG}
when:
event:
- tag
- name: publish-helm
image: gomods/drone-helm
settings:
charts_repo: https://athens.blob.core.windows.net
environment:
AZURE_STORAGE_CONNECTION_STRING:
from_secret: AZURE_STORAGE_CONNECTION_STRING
when:
branch:
- master
event:
- push
# Here we can add any backend storage that can be tested.
services:
- name: mongo
image: mongo
ports:
- 27017
- name: minio
image: minio/minio:latest
command:
- server
- /data
ports:
- 9000
environment:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
- name: redis
image: redis
ports:
- 6379
- name: redis-sentinel
image: bitnami/redis-sentinel
environment:
REDIS_MASTER_HOST: redis
REDIS_MASTER_SET: redis-1
REDIS_SENTINEL_PASSWORD: sekret
REDIS_SENTINEL_QUORUM: "1"
ports:
- 26379
- name: protectedredis
image: redis
ports:
- 6380
commands:
- "redis-server ./test/redis.conf"
- name: athens-proxy
image: gomods/athens:canary
pull: always
ports:
- 3000
environment:
ATHENS_GOGET_WORKERS: 5
ATHENS_PROTOCOL_WORKERS: 10
ATHENS_SINGLE_FLIGHT_TYPE: gcp
ATHENS_STORAGE_TYPE: gcp
ATHENS_STORAGE_GCP_BUCKET: "athens_ci_build"
ATHENS_STORAGE_GCP_JSON_KEY:
from_secret: GCS_SERVICE_ACCOUNT
volumes:
- name: cache
temp: {}
---
kind: signature
hmac: 8ee2a04fedfd1a0c1ab3da19a3441485bf447de3e04fe057f626c83454a042b6
...