forked from kemitix/git-next
Paul Campbell
3ea7f36c98
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.
79 lines
2.4 KiB
Makefile
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
|