rs-nomad 0.16.0

This crate provides access to a set of strongly typed apis to interact with nomad (https://www.nomadproject.io/)
Documentation
default: build

build:
	cargo build --all-targets

lint:
	cargo clippy -- -D warnings -A dead_code

fmt:
	cargo fmt --all
	cargo sort --workspace

run-test-env: stop-test-env
	docker network rm persistence || true

	# Create the network with a preset subnet (we just choose any) since we use Consul for DNS which hence
	# needs a static IP address.
	docker network create --subnet 172.16.238.0/24 persistence || true
	mkdir -p /tmp/nomad && mkdir -p /tmp/nomad1

	COMPOSE_PROFILES=$(COMPOSE_PROFILES) docker-compose -f core-compose.yml up --detach --force-recreate
	bash docker-utils/setupNomadinDocker.sh

# Stops the local testing infrastructure
stop-test-env:
	docker-compose -f core-compose.yml down --volumes --remove-orphans

# Helper target to build the image used by test-crates-in-docker. Allows splitting out build vs test time.
build-crates-tester-docker:
	DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 docker-compose -f test-compose.yml build --progress=plain -- crates-tester

test-crates:
	cargo test --workspace

# Target used by CI as we can not assume that all infrastructure is hosted via localhost in that environment.
test-crates-in-docker:
	DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 docker-compose -f test-compose.yml up --exit-code-from crates-tester crates-tester