git-next/justfile
Paul Campbell 3ea7f36c98 build(docker): Don't break when debian drops old packge versions
Debian routinly drop older versions of packages from the repositories as
new versions replace them. Pinning the version causes the build to break
at seamingly random times when the pinned version gets dropped.
2024-09-14 07:38:13 +01:00

79 lines
2.4 KiB
Makefile

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"
publish version:
#!/usr/bin/bash -e
echo "Publishing git-next v{{version}} to crates.io..."
if [ -z $(git status --short) ]; then
echo "Worktree is clean - proceeding"
else
echo "Worktree is Dirty - aborting" ; exit
fi
git checkout v{{version}}
ORDER=$(cargo publish-workspace --target-version {{version}} --crate-prefix git-next --show-order 2>/dev/null | cut -d\ -f2-)
echo "Publishing crates in order: ${ORDER}"
# INFO: Why not use publish-workspace to publish? It doesn't support when crates-io registry is replaced
for P in ${ORDER}
do
echo "Publishing ${P}..."
cargo publish --registry crates-io -p $P
echo "Done: ${P}"
echo "======================================"
done
echo "All crates published"
git checkout dev
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