mirror of
https://github.com/gomods/athens
synced 2026-02-03 12:10:32 +00:00
* Replace the current e2e script with a test suite running e2e tests. * Add a build tag to skip e2e while running unit tests. We want e2e tests to be skipped while running normal unit tests.
128 lines
3.4 KiB
Makefile
128 lines
3.4 KiB
Makefile
VERSION = "unset"
|
|
DATE=$(shell date -u +%Y-%m-%d-%H:%M:%S-%Z)
|
|
|
|
ifndef GOLANG_VERSION
|
|
override GOLANG_VERSION = 1.13
|
|
endif
|
|
|
|
.PHONY: build
|
|
build: ## build the athens proxy
|
|
go build -o ./cmd/proxy/proxy ./cmd/proxy
|
|
|
|
.PHONY: build-ver
|
|
build-ver: ## build the athens proxy with version number
|
|
GO111MODULE=on CGO_ENABLED=0 GOPROXY="https://proxy.golang.org" go build -ldflags "-X github.com/gomods/athens/pkg/build.version=$(VERSION) -X github.com/gomods/athens/pkg/build.buildDate=$(DATE)" -o athens ./cmd/proxy
|
|
|
|
athens:
|
|
$(MAKE) build-ver
|
|
|
|
# The build-image step creates a docker image that has all the tools required
|
|
# to perform some CI build steps, instead of relying on them being installed locally
|
|
.PHONY: build-image
|
|
build-image:
|
|
docker build -t athens-build ./scripts/build-image
|
|
|
|
.PHONY: run
|
|
run: ## run the athens proxy with dev configs
|
|
cd ./cmd/proxy && go run . -config_file ../../config.dev.toml
|
|
|
|
.PHONY: run-docker
|
|
run-docker:
|
|
docker-compose -p athensdockerdev build --build-arg GOLANG_VERSION=${GOLANG_VERSION} dev
|
|
docker-compose -p athensdockerdev up -d dev
|
|
|
|
.PHONY: run-docker-teardown
|
|
run-docker-teardown:
|
|
docker-compose -p athensdockerdev down
|
|
|
|
.PHONY: docs
|
|
docs: ## build the docs docker image
|
|
docker build -t gomods/hugo -f docs/Dockerfile .
|
|
|
|
.PHONY: setup-dev-env
|
|
setup-dev-env:
|
|
./scripts/get_dev_tools.sh
|
|
$(MAKE) dev
|
|
|
|
.PHONY: verify
|
|
verify: ## verify athens codebase
|
|
./scripts/check_gofmt.sh
|
|
./scripts/check_golint.sh
|
|
./scripts/check_deps.sh
|
|
./scripts/check_conflicts.sh
|
|
|
|
.PHONY: test-unit
|
|
test-unit: ## run unit tests with race detector and code coverage enabled
|
|
./scripts/test_unit.sh
|
|
|
|
.PHONY: test-unit-docker
|
|
test-unit-docker: ## run unit tests with docker
|
|
docker-compose -p athensunit build --build-arg GOLANG_VERSION=${GOLANG_VERSION} testunit
|
|
docker-compose -p athensunit up --exit-code-from=testunit testunit
|
|
docker-compose -p athensunit down
|
|
|
|
.PHONY: test-e2e
|
|
test-e2e:
|
|
cd e2etests && go test --tags e2etests
|
|
|
|
.PHONY: test-e2e-docker
|
|
test-e2e-docker:
|
|
docker-compose -p athense2e build --build-arg GOLANG_VERSION=${GOLANG_VERSION} teste2e
|
|
docker-compose -p athense2e up --exit-code-from=teste2e teste2e
|
|
docker-compose -p athense2e down
|
|
|
|
.PHONY: docker
|
|
docker: proxy-docker
|
|
|
|
.PHONY: proxy-docker
|
|
proxy-docker:
|
|
docker build -t gomods/athens -f cmd/proxy/Dockerfile --build-arg GOLANG_VERSION=${GOLANG_VERSION} .
|
|
|
|
.PHONY: docker-push
|
|
docker-push:
|
|
./scripts/push-docker-images.sh
|
|
|
|
.PHONY: charts-push
|
|
charts-push: build-image
|
|
docker run --rm -it \
|
|
-v `pwd`:/go/src/github.com/gomods/athens \
|
|
-e AZURE_STORAGE_CONNECTION_STRING \
|
|
-e CHARTS_REPO \
|
|
athens-build ./scripts/push-helm-charts.sh
|
|
|
|
bench:
|
|
./scripts/benchmark.sh
|
|
|
|
.PHONY: alldeps
|
|
alldeps:
|
|
docker-compose -p athensdev up -d mongo
|
|
docker-compose -p athensdev up -d minio
|
|
docker-compose -p athensdev up -d jaeger
|
|
echo "sleeping for a bit to wait for the DB to come up"
|
|
sleep 5
|
|
|
|
.PHONY: dev
|
|
dev:
|
|
docker-compose -p athensdev up -d mongo
|
|
docker-compose -p athensdev up -d minio
|
|
|
|
.PHONY: down
|
|
down:
|
|
docker-compose -p athensdev down -v
|
|
|
|
.PHONY: dev-teardown
|
|
dev-teardown:
|
|
docker-compose -p athensdev down -v
|
|
|
|
.PHONY: clean
|
|
clean: ## delete all locally-built artefacts (not including docker images)
|
|
rm -f athens cmd/proxy/proxy
|
|
|
|
.PHONY: help
|
|
help: ## display help page
|
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
|
|
|
.PHONY: deploy-gae
|
|
deploy-gae:
|
|
cd scripts/gae && gcloud app deploy
|