* bump the postgress version used in CI and fix the tests that broke * sort Grants by raw grant string rather than GrantStrings * trigger ci
72 lines
2.2 KiB
Makefile
72 lines
2.2 KiB
Makefile
all: docker-build
|
|
|
|
CWD := $(shell pwd)
|
|
DOCKER_ARGS ?= -d
|
|
|
|
DOCKER_MIRROR?=docker.io
|
|
REGISTRY_NAME?=hashicorpboundary
|
|
TEST_IMAGE_NAME=postgres
|
|
TEST_IMAGE_TAG ?= $(DOCKER_MIRROR)/$(REGISTRY_NAME)/$(TEST_IMAGE_NAME):16-alpine
|
|
PG_OPTS ?=
|
|
TEST_DB_PORT ?= 5432
|
|
TEST_CONTAINER_NAME ?= boundary-sql-tests
|
|
|
|
# Generate targets from dockerfiles
|
|
dockerfiles = $(wildcard Dockerfile.*)
|
|
docker-buildxs = $(patsubst Dockerfile.%,%-buildx, $(dockerfiles))
|
|
docker-load-buildxs = $(patsubst Dockerfile.%,%-load-buildx, $(dockerfiles))
|
|
|
|
docker-build: ${docker-buildxs}
|
|
|
|
${docker-buildxs}: %-buildx:
|
|
docker buildx build \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--push \
|
|
-t $(DOCKER_MIRROR)/$(REGISTRY_NAME)/$(TEST_IMAGE_NAME):$* \
|
|
-f Dockerfile.$* .
|
|
|
|
docker-load: ${docker-load-buildxs}
|
|
|
|
${docker-load-buildxs}: %-load-buildx:
|
|
docker buildx build \
|
|
--load \
|
|
-t $(DOCKER_MIRROR)/$(REGISTRY_NAME)/$(TEST_IMAGE_NAME):$* \
|
|
-f Dockerfile.$* .
|
|
|
|
database-up:
|
|
@echo "Using image: $(TEST_IMAGE_TAG)"
|
|
@echo "Additional postgres configuration: $(PG_OPTS)"
|
|
@docker run \
|
|
$(DOCKER_ARGS) \
|
|
--name $(TEST_CONTAINER_NAME) \
|
|
-p $(TEST_DB_PORT):5432 \
|
|
-e POSTGRES_PASSWORD=boundary \
|
|
-e POSTGRES_USER=boundary \
|
|
-e POSTGRES_DB=boundary \
|
|
-e TEST_DATABASE_UP_WITH_OP=$(TEST_DATABASE_UP_WITH_OP) \
|
|
-e PGDATA=/pgdata \
|
|
--mount type=tmpfs,destination=/pgdata \
|
|
-v "$(CWD)/../../../internal/db/schema/migrations":/migrations \
|
|
-v "$(CWD)/benchmark_dumps":/benchmark_dumps \
|
|
$(TEST_IMAGE_TAG) \
|
|
-c 'config_file=/etc/postgresql/postgresql.conf' \
|
|
$(PG_OPTS) 1> /dev/null
|
|
@echo "Container name: $(TEST_CONTAINER_NAME)"
|
|
@echo "Test database available at: 127.0.0.1:$(TEST_DB_PORT)"
|
|
@echo "For database logs run:"
|
|
@echo " docker logs $(TEST_CONTAINER_NAME)"
|
|
|
|
clean:
|
|
docker stop $(TEST_CONTAINER_NAME) || true
|
|
docker rm -v $(TEST_CONTAINER_NAME) || true
|
|
|
|
generate-database-dumps:
|
|
BOUNDARY_DB_TEST_GENERATE_SESSION_BENCHMARK_TEMPLATE_DUMPS=1 go test \
|
|
-v \
|
|
-run '^TestGenerateSessionBenchmarkTemplateDumps$$' \
|
|
--timeout=1000h \
|
|
-count=1 \
|
|
../
|
|
|
|
.PHONY: all docker-build database-up ${docker-buildxs} ${docker-load-buildxs} generate-database-dumps clean
|