build: #!/usr/bin/env bash set -e cargo fmt cargo fmt --check cargo machete cargo hack clippy cargo hack build cargo hack test cargo doc # cargo test --example get # cargo mutants --jobs 4 install-hooks: @echo "Installing git hooks" cargo install cc-cli git config core.hooksPath .git-hooks validate-dev-branch: git rebase -i origin/main -x 'just mock-ci' mock-ci: cargo fmt --check cargo hack --feature-powerset build cargo hack --feature-powerset test cargo hack --feature-powerset clippy start-ngrok: #!/usr/bin/env bash # Uses NGROK_DOMAIN env var if available if test -z ${NGROK_DOMAIN} ; then ngrok http 8080 else ngrok http --domain=${NGROK_DOMAIN} 8080 fi start-mac-tunnel: ssh dagon -R7777:localhost:8888 @echo "Mac Tunnel has closed" coverage-update: cargo tarpaulin --lib --out html echo "Now:\n\topen tarpaulin-report.html" coverage crate test: cargo tarpaulin -p {{crate}} --lib --out html -- {{test}} # cargo tarpaulin --skip-clean -p {{crate}} --lib --out html -- {{test}} grcov-coverage: #!/usr/bin/env bash set -e # an alternate coverage report rustup component add llvm-tools-preview export RUSTFLAGS="-Cinstrument-coverage" cargo build export LLVM_PROFILE_FILE="git-next-%p-%m.profraw" cargo test echo "Building report..." grcov . -s . --binary-path ./target/debug/ -t html --branch --ignore-not-existing -o ./target/debug/coverage/ find . -name '*.profraw' -exec rm "{}" \; echo "Now:\n\topen target/debug/coverage/index.html" docker-build-builder: docker build -t git.kemitix.net/kemitix/git-next-builder:2024.08.04 -f Dockerfile.builder . docker-build: docker-build-builder docker build -t git.kemitix.net/kemitix/git-next:latest . docker-run: docker-build docker run -it -p "7777:8888" -v .:/app/ git.kemitix.net/kemitix/git-next:latest server start --ui run *args: cargo run -- {{ args }} run-ui: just run server start --ui