mirror of
https://github.com/gomods/athens
synced 2026-02-03 12:10:32 +00:00
153 lines
3.0 KiB
YAML
153 lines
3.0 KiB
YAML
---
|
|
kind: pipeline
|
|
name: default
|
|
|
|
steps:
|
|
- name: download-dependencies
|
|
image: golang:1.12
|
|
commands:
|
|
# wait for services to be ready.
|
|
- sleep 5
|
|
- 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.12
|
|
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
|
|
- 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
|
|
GCS_SERVICE_ACCOUNT:
|
|
from_secret: GCS_SERVICE_ACCOUNT
|
|
GCS_PROJECT_ID:
|
|
from_secret: GOOGLE_CLOUD_PROJECT
|
|
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-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: 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
|
|
|
|
...
|