2024-03-04 04:21:03 +01:00
|
|
|
SHELL := /bin/bash
|
|
|
|
|
|
2024-03-09 11:28:50 +01:00
|
|
|
.PHONY: doc readme test
|
2024-03-03 19:03:06 +01:00
|
|
|
|
2024-03-05 00:50:21 +01:00
|
|
|
define source_env_if_not_ci
|
|
|
|
|
@if [ -z "$${CI}" ]; then \
|
|
|
|
|
if [ -f ./.env ]; then \
|
|
|
|
|
source ./.env; \
|
|
|
|
|
else \
|
|
|
|
|
echo "No .env file found"; \
|
|
|
|
|
exit 1; \
|
|
|
|
|
fi \
|
|
|
|
|
fi
|
|
|
|
|
endef
|
|
|
|
|
|
2024-03-03 19:03:06 +01:00
|
|
|
define RELEASE_TEMPLATE
|
2024-04-13 13:55:22 +02:00
|
|
|
npx conventional-changelog-cli -p conventionalcommits -i ./CHANGELOG.md -s
|
2024-03-03 19:03:06 +01:00
|
|
|
git add .
|
|
|
|
|
git commit -m "docs(changelog): update"
|
|
|
|
|
git push origin HEAD
|
2024-03-03 19:44:43 +01:00
|
|
|
cargo release $(1) --execute
|
2024-03-03 19:03:06 +01:00
|
|
|
git push origin HEAD --tags
|
|
|
|
|
endef
|
|
|
|
|
|
2024-03-05 00:55:07 +01:00
|
|
|
doc:
|
|
|
|
|
cargo doc
|
|
|
|
|
open ./target/doc/mistralai_client/index.html
|
|
|
|
|
|
2024-03-09 11:28:50 +01:00
|
|
|
readme:
|
|
|
|
|
@echo "Generating README.md from template..."
|
|
|
|
|
@> README.md # Clear README.md content before starting
|
|
|
|
|
@while IFS= read -r line || [[ -n "$$line" ]]; do \
|
|
|
|
|
if [[ $$line == *"<CODE>"* && $$line == *"</CODE>"* ]]; then \
|
|
|
|
|
example_path=$$(echo $$line | sed -n 's/.*<CODE>\(.*\)<\/CODE>.*/\1/p'); \
|
|
|
|
|
if [ -f $$example_path ]; then \
|
|
|
|
|
echo '```rs' >> README.md; \
|
|
|
|
|
cat $$example_path >> README.md; \
|
|
|
|
|
echo '```' >> README.md; \
|
|
|
|
|
else \
|
|
|
|
|
echo "Error: Example $$example_path not found." >&2; \
|
|
|
|
|
fi; \
|
|
|
|
|
else \
|
|
|
|
|
echo "$$line" >> README.md; \
|
|
|
|
|
fi; \
|
|
|
|
|
done < README.template.md
|
|
|
|
|
@echo "README.md has been generated."
|
|
|
|
|
|
2024-03-03 19:03:06 +01:00
|
|
|
release-patch:
|
|
|
|
|
$(call RELEASE_TEMPLATE,patch)
|
|
|
|
|
release-minor:
|
|
|
|
|
$(call RELEASE_TEMPLATE,minor)
|
|
|
|
|
release-major:
|
|
|
|
|
$(call RELEASE_TEMPLATE,major)
|
2024-03-04 04:21:03 +01:00
|
|
|
|
|
|
|
|
test:
|
2024-06-07 14:06:40 +02:00
|
|
|
@$(source_env_if_not_ci) && \
|
2024-03-09 11:28:50 +01:00
|
|
|
cargo test --no-fail-fast
|
2024-03-04 04:21:03 +01:00
|
|
|
test-cover:
|
2024-06-07 14:06:40 +02:00
|
|
|
@$(source_env_if_not_ci) && \
|
2024-03-09 11:28:50 +01:00
|
|
|
cargo llvm-cov
|
2024-03-05 00:50:21 +01:00
|
|
|
test-doc:
|
2024-06-07 14:06:40 +02:00
|
|
|
@$(source_env_if_not_ci) && \
|
2024-03-09 11:28:50 +01:00
|
|
|
cargo test --doc --no-fail-fast
|
|
|
|
|
test-examples:
|
2024-06-07 14:06:40 +02:00
|
|
|
@$(source_env_if_not_ci) && \
|
|
|
|
|
for example in $$(ls examples/*.rs | sed 's/examples\/\(.*\)\.rs/\1/'); do \
|
2024-03-09 11:28:50 +01:00
|
|
|
echo "Running $$example"; \
|
|
|
|
|
cargo run --example $$example; \
|
|
|
|
|
done
|
2024-03-04 04:21:03 +01:00
|
|
|
test-watch:
|
2024-06-07 14:06:40 +02:00
|
|
|
@source ./.env && \
|
2024-03-09 11:28:50 +01:00
|
|
|
cargo watch -x "test -- --nocapture"
|