.PHONY: build test test-e2e lint lint-md fmt check release install clean release-patch release-minor release-major

build:
	cargo build

test:
	cargo test

# Runs the ignored lifecycle suite against a Personal Developer Instance.
# Put credentials in .env.e2e (see .env.e2e.example).
test-e2e:
	@set -a; \
	if [ -f .env.e2e ]; then . ./.env.e2e; fi; \
	set +a; \
	cargo test --test e2e -- --ignored --test-threads=1

lint: lint-md
	cargo fmt -- --check
	cargo clippy --all-targets -- -D warnings

lint-md:
	uv run --locked --only-group dev rumdl check $$(git ls-files '*.md')

fmt:
	cargo fmt

check: lint test

release:
	cargo build --release

install: check release
	cp target/release/servicenow ~/.local/bin/servicenow

clean:
	cargo clean

release-patch:
	vership bump patch

release-minor:
	vership bump minor

release-major:
	vership bump major
