mirror of
https://github.com/geoserver/geoserver-cloud.git
synced 2025-12-08 20:16:08 +00:00
101 lines
3.0 KiB
Makefile
101 lines
3.0 KiB
Makefile
all: install test build-image
|
|
|
|
TAG=$(shell mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
|
|
COSIGN_PASSWORD := $(COSIGN_PASSWORD)
|
|
COMPOSE_PGCONFIG_OPTIONS ?= -f compose.yml -f catalog-pgconfig.yml
|
|
COMPOSE_DATADIR_OPTIONS ?= -f compose.yml -f catalog-datadir.yml
|
|
COMPOSE_ACCEPTANCE_PGCONFIG_OPTIONS ?= $(COMPOSE_PGCONFIG_OPTIONS) -f acceptance.yml
|
|
COMPOSE_ACCEPTANCE_DATADIR_OPTIONS ?= $(COMPOSE_DATADIR_OPTIONS) -f acceptance.yml
|
|
UID=$(shell id -u)
|
|
GID=$(shell id -g)
|
|
|
|
clean:
|
|
./mvnw clean
|
|
|
|
lint:
|
|
./mvnw fmt:check sortpom:verify -Dsort.verifyFailOn=strict -Dsort.verifyFail=stop -ntp
|
|
|
|
format:
|
|
./mvnw sortpom:sort fmt:format -ntp
|
|
|
|
install:
|
|
./mvnw clean install -DskipTests -ntp -T4 -U
|
|
|
|
test:
|
|
./mvnw verify -ntp -T4
|
|
|
|
build-base-images:
|
|
./mvnw clean package -f src/apps/base-images -DskipTests -T4 && \
|
|
COMPOSE_DOCKER_CLI_BUILD=1 \
|
|
DOCKER_BUILDKIT=1 \
|
|
TAG=$(TAG) \
|
|
docker compose -f docker-build/base-images.yml build
|
|
|
|
build-image-infrastructure:
|
|
./mvnw clean package -f src/apps/infrastructure -DskipTests -T4 && \
|
|
COMPOSE_DOCKER_CLI_BUILD=1 \
|
|
DOCKER_BUILDKIT=1 \
|
|
TAG=$(TAG) \
|
|
docker compose -f docker-build/infrastructure.yml build
|
|
|
|
build-image-geoserver:
|
|
./mvnw clean package -f src/apps/geoserver -DskipTests -T4 && \
|
|
COMPOSE_DOCKER_CLI_BUILD=1 \
|
|
DOCKER_BUILDKIT=1 \
|
|
TAG=$(TAG) \
|
|
docker compose -f docker-build/geoserver.yml build
|
|
|
|
build-image: build-base-images build-image-infrastructure build-image-geoserver
|
|
|
|
push-image:
|
|
TAG=$(TAG) \
|
|
docker compose \
|
|
-f docker-build/infrastructure.yml \
|
|
-f docker-build/geoserver.yml \
|
|
push
|
|
|
|
.PHONY: sign-image
|
|
sign-image:
|
|
@bash -c '\
|
|
images=$$(docker images --format "{{.Repository}}@{{.Digest}}" | grep "geoserver-cloud-"); \
|
|
for image in $$images; do \
|
|
echo "Signing $$image"; \
|
|
output=$$(cosign sign --yes --key env://COSIGN_KEY --recursive $$image 2>&1); \
|
|
if [ $$? -ne 0 ]; then \
|
|
echo "Error occurred: $$output"; \
|
|
exit 1; \
|
|
else \
|
|
echo "Signing successful: $$output"; \
|
|
fi; \
|
|
done'
|
|
|
|
.PHONY: verify-image
|
|
verify-image:
|
|
@bash -c '\
|
|
images=$$(docker images --format "{{.Repository}}@{{.Digest}}" | grep "geoserver-cloud-"); \
|
|
for image in $$images; do \
|
|
echo "Verifying $$image"; \
|
|
output=$$(cosign verify --key env://COSIGN_PUB_KEY $$image 2>&1); \
|
|
if [ $$? -ne 0 ]; then \
|
|
echo "Error occurred: $$output"; \
|
|
exit 1; \
|
|
else \
|
|
echo "Verification successful: $$output"; \
|
|
fi; \
|
|
done'
|
|
|
|
.PHONY: build-acceptance
|
|
build-acceptance:
|
|
docker build --tag=acceptance:$(TAG) acceptance_tests
|
|
|
|
.PHONY: acceptance-tests
|
|
acceptance-tests:
|
|
acceptance-tests: build-acceptance
|
|
(cd compose/ && TAG=$(TAG) GS_USER=$(UID):$(GID) docker compose $(COMPOSE_ACCEPTANCE_DATADIR_OPTIONS) up -d)
|
|
sleep 30
|
|
(cd compose/ && TAG=$(TAG) GS_USER=$(UID):$(GID) docker compose $(COMPOSE_ACCEPTANCE_DATADIR_OPTIONS) exec -T acceptance pytest . -vvv --color=yes)
|
|
|
|
.PHONY: stop-acceptance-tests
|
|
stop-acceptance-tests: build-acceptance
|
|
(cd compose/ && TAG=$(TAG) GS_USER=$(UID):$(GID) docker compose $(COMPOSE_ACCEPTANCE_DATADIR_OPTIONS) down -v)
|