2022-12-16 08:18:02 +00:00
|
|
|
#! /bin/bash
|
|
|
|
|
2020-04-14 12:10:42 +00:00
|
|
|
source ./ci/env.sh
|
2020-07-28 06:45:11 +00:00
|
|
|
|
|
|
|
set -e
|
2020-04-21 07:36:02 +00:00
|
|
|
export CARGO_HOME='/usr/local/cargo'
|
2020-04-14 12:10:42 +00:00
|
|
|
|
2024-05-10 06:46:23 +00:00
|
|
|
RUSTUP_VERSION=1.27.1
|
2020-04-14 12:10:42 +00:00
|
|
|
RUST_VERSION=$1
|
2020-11-01 07:47:18 +00:00
|
|
|
RUST_IMAGE_FULL=$2
|
2020-04-14 12:10:42 +00:00
|
|
|
RUST_ARCH="x86_64-unknown-linux-gnu"
|
|
|
|
|
|
|
|
RUSTUP_URL=https://static.rust-lang.org/rustup/archive/$RUSTUP_VERSION/$RUST_ARCH/rustup-init
|
|
|
|
wget $RUSTUP_URL
|
|
|
|
|
|
|
|
chmod +x rustup-init;
|
|
|
|
./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION;
|
|
|
|
rm rustup-init;
|
|
|
|
chmod -R a+w $RUSTUP_HOME $CARGO_HOME
|
|
|
|
|
|
|
|
rustup --version
|
|
|
|
cargo --version
|
|
|
|
rustc --version
|
|
|
|
|
2020-11-01 07:47:18 +00:00
|
|
|
if [ "$RUST_IMAGE_FULL" = "1" ]; then
|
2020-04-14 12:10:42 +00:00
|
|
|
rustup component add clippy-preview
|
|
|
|
rustup component add rustfmt
|
2022-04-07 15:51:20 +00:00
|
|
|
|
2024-08-13 06:34:47 +00:00
|
|
|
cargo install --locked cargo-deny
|
2024-08-13 06:33:36 +00:00
|
|
|
if [ "$RUST_VERSION" = "1.71.1" ]; then
|
2024-08-13 06:34:47 +00:00
|
|
|
cargo install --locked cargo-outdated
|
2024-08-13 06:33:36 +00:00
|
|
|
else
|
2024-08-05 09:33:58 +00:00
|
|
|
# Don't use --locked because time-0.3.30 does not build with 1.80 or newer
|
2024-08-13 06:34:47 +00:00
|
|
|
cargo install cargo-outdated
|
2024-08-05 09:33:58 +00:00
|
|
|
fi
|
2024-08-13 06:34:47 +00:00
|
|
|
cargo install --locked typos-cli --version "1.19.0"
|
2021-01-08 14:36:07 +00:00
|
|
|
|
2021-05-05 08:17:49 +00:00
|
|
|
# Coverage tools
|
2021-01-08 14:36:07 +00:00
|
|
|
rustup component add llvm-tools-preview
|
2024-08-13 06:33:36 +00:00
|
|
|
if [ "$RUST_VERSION" = "1.71.1" ]; then
|
2024-08-13 06:34:47 +00:00
|
|
|
cargo install --locked grcov
|
2024-08-13 06:33:36 +00:00
|
|
|
else
|
2024-08-05 09:33:58 +00:00
|
|
|
# Don't use --locked because time-0.3.30 does not build with 1.80 or newer
|
2024-08-13 06:34:47 +00:00
|
|
|
cargo install grcov
|
2024-08-05 09:33:58 +00:00
|
|
|
fi
|
2022-04-07 15:51:20 +00:00
|
|
|
fi
|
2021-05-05 08:17:49 +00:00
|
|
|
|
2024-08-20 17:48:04 +00:00
|
|
|
# Multiple dependencies of cargo-nextest require 1.74/1.75 nowadays
|
|
|
|
if [ "$RUST_VERSION" = "1.71.1" ]; then
|
|
|
|
cargo install --locked cargo-nextest@0.9.67
|
|
|
|
else
|
|
|
|
cargo install --locked cargo-nextest
|
|
|
|
fi
|
|
|
|
|
2024-08-13 06:33:36 +00:00
|
|
|
if [ "$RUST_VERSION" = "1.71.1" ]; then
|
2024-08-05 08:24:45 +00:00
|
|
|
cargo install --locked cargo-c --version 0.9.26+cargo-0.74
|
2024-08-13 06:33:36 +00:00
|
|
|
else
|
|
|
|
cargo install --locked cargo-c --version 0.10.3+cargo-0.81
|
2024-02-06 08:30:08 +00:00
|
|
|
fi
|
2023-07-19 06:33:33 +00:00
|
|
|
|
2022-04-07 15:51:20 +00:00
|
|
|
if [ "$RUST_VERSION" = "nightly" ]; then
|
2022-09-04 17:49:19 +00:00
|
|
|
rustup component add rustfmt --toolchain nightly
|
|
|
|
|
2021-05-05 08:17:49 +00:00
|
|
|
# Documentation tools
|
2024-08-13 06:34:47 +00:00
|
|
|
cargo install --locked rustdoc-stripper
|
2021-01-08 14:36:07 +00:00
|
|
|
fi
|