mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-04-22 13:38:43 +00:00

Fixed #136 * Impl opt-out optioins in binstalk * Replace field `Options::{gh_crate, quickinstall}_fetcher` with `resolver` which can determine order of resolver used. * Add new field `Args::{disable_}strategies` * Add new variant `BinstallError::InvalidStrategies` * Add variant `BinstallError::NoFallbackToCargoInstall` * Add code for supporting strategies in mod entry * Test `--disable-strategies` in `tests.sh` * Test for `--strategies` in `tests.sh` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
126 lines
3.8 KiB
Bash
Executable file
126 lines
3.8 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
set -euxo pipefail
|
|
|
|
unset CARGO_INSTALL_ROOT
|
|
|
|
crates="b3sum cargo-release cargo-binstall cargo-watch miniserve sccache"
|
|
|
|
if [ "$2" = "Windows" ]; then
|
|
# Install binaries using cargo-binstall
|
|
# shellcheck disable=SC2086
|
|
"./$1" --log-level debug --no-confirm $crates
|
|
else
|
|
export CARGO_HOME=/tmp/cargo-home-for-test
|
|
export PATH="$CARGO_HOME/bin:/tmp/t/bin:$PATH"
|
|
|
|
mkdir -p "/tmp/t/bin"
|
|
# Copy it to bin to test use of env var `CARGO`
|
|
cp "./$1" "/tmp/t/bin/cargo-binstall"
|
|
|
|
# Install binaries using cargo-binstall
|
|
# shellcheck disable=SC2086
|
|
cargo binstall --log-level debug --no-confirm $crates
|
|
|
|
rm -r /tmp/t
|
|
fi
|
|
|
|
# Test that the installed binaries can be run
|
|
b3sum --version
|
|
cargo-release release --version
|
|
cargo-binstall --help >/dev/null
|
|
cargo binstall --help >/dev/null
|
|
cargo watch -V
|
|
miniserve -V
|
|
|
|
test_resources=".github/scripts/cargo-tomls"
|
|
|
|
# Install binaries using `--manifest-path`
|
|
# Also test default github template
|
|
"./$1" binstall --force --log-level debug --manifest-path "$test_resources/github-test-Cargo.toml" --no-confirm cargo-binstall
|
|
# Test that the installed binaries can be run
|
|
cargo binstall --help >/dev/null
|
|
|
|
# FIXME: test this some other way that is not dependent on the version being published!
|
|
# "./$1" binstall --force --log-level debug --manifest-path crates/bin --no-confirm cargo-binstall
|
|
|
|
min_tls=1.3
|
|
[[ "${2:-}" == "Windows" ]] && min_tls=1.2 # WinTLS on GHA doesn't support 1.3 yet
|
|
|
|
"./$1" binstall \
|
|
--force \
|
|
--log-level debug \
|
|
--min-tls-version $min_tls \
|
|
--no-confirm \
|
|
cargo-binstall
|
|
# Test that the installed binaries can be run
|
|
cargo binstall --help >/dev/null
|
|
|
|
# Test --version
|
|
"./$1" binstall --force --log-level debug --no-confirm --version 0.11.1 cargo-binstall
|
|
# Test that the installed binaries can be run
|
|
cargo binstall --help >/dev/null
|
|
|
|
# Test "$crate_name@$version"
|
|
"./$1" binstall --force --log-level debug --no-confirm cargo-binstall@0.11.1
|
|
# Test that the installed binaries can be run
|
|
cargo binstall --help >/dev/null
|
|
|
|
# Test skip when installed
|
|
"./$1" binstall --no-confirm --force cargo-binstall@0.11.1
|
|
"./$1" binstall --no-confirm cargo-binstall@0.11.1 | grep -q 'cargo-binstall v0.11.1 is already installed'
|
|
|
|
"./$1" binstall --no-confirm cargo-binstall@0.10.0 | grep -q -v 'cargo-binstall v0.10.0 is already installed'
|
|
|
|
## Test When 0.11.0 is installed but can be upgraded.
|
|
"./$1" binstall --no-confirm cargo-binstall@0.12.0
|
|
"./$1" binstall --no-confirm cargo-binstall@0.12.0 | grep -q 'cargo-binstall v0.12.0 is already installed'
|
|
"./$1" binstall --no-confirm cargo-binstall@^0.12.0 | grep -q -v 'cargo-binstall v0.12.0 is already installed'
|
|
|
|
# Test default GitLab pkg-url templates
|
|
"./$1" binstall \
|
|
--force \
|
|
--manifest-path "$test_resources/gitlab-test-Cargo.toml" \
|
|
--log-level debug \
|
|
--no-confirm \
|
|
--disable-strategies compile \
|
|
cargo-binstall
|
|
|
|
# Test default BitBucket pkg-url templates
|
|
"./$1" binstall \
|
|
--force \
|
|
--manifest-path "$test_resources/bitbucket-test-Cargo.toml" \
|
|
--log-level debug \
|
|
--no-confirm \
|
|
--disable-strategies compile \
|
|
cargo-binstall
|
|
|
|
# Test default Github pkg-url templates,
|
|
# with bin-dir provided
|
|
"./$1" binstall \
|
|
--force \
|
|
--manifest-path "$test_resources/github-test-Cargo2.toml" \
|
|
--log-level debug \
|
|
--no-confirm \
|
|
--disable-strategies compile \
|
|
cargo-binstall
|
|
|
|
## Test --disable-strategies
|
|
set +e
|
|
|
|
"./$1" binstall --no-confirm --disable-strategies quick-install,compile cargo-update
|
|
exit_code="$?"
|
|
|
|
if [ "$exit_code" != 94 ]; then
|
|
echo "Expected exit code 94, but actual exit code $exit_code"
|
|
exit 1
|
|
fi
|
|
|
|
## Test --strategies
|
|
"./$1" binstall --no-confirm --strategies crate-meta-data cargo-update
|
|
exit_code="$?"
|
|
|
|
if [ "$exit_code" != 94 ]; then
|
|
echo "Expected exit code 94, but actual exit code $exit_code"
|
|
exit 1
|
|
fi
|