feat: allow selecting the nightly toolchain
All checks were successful
/ test (push) Successful in 5s

This commit is contained in:
Paul Campbell 2024-09-16 16:18:49 +01:00
parent e931692d33
commit dbe6a60417
2 changed files with 55 additions and 4 deletions

View file

@ -14,12 +14,22 @@ jobs:
steps:
- uses: https://git.kemitix.net/kemitix/rust@v1.80.0
with:
args: cargo test
args: nightly cargo test
- uses: https://git.kemitix.net/kemitix/rust@v1.80.0
with:
args: cargo build
args: v1.79.0 cargo build
```
The `args` is one of the following:
- <COMMAND>
- [ [nightly | stable | v1.xx.x] ] <COMMAND>
`COMMAND` is the command you want to run. The optional prefix is the Rust toolchain, or version. Allowed values are `nightly`, `stable` or a Rust version.
Where the optional prefix is not given, the `stable` toolchain will be used.
## Contents
- nodejs

View file

@ -2,5 +2,46 @@
set -e
rustup update
${INPUT_ARGS}
echo "INPUT_ARGS: ${INPUT_ARGS}"
# split input into an array
read -ra ARGS <<<"${INPUT_ARGS}"
# default toolchain
TOOLCHAIN="stable"
echo "Default toolchain: ${TOOLCHAIN}"
# if first parameter is 'nightly'...
if test "${ARGS[0]}" == "nightly"; then
TOOLCHAIN="nightly"
ARGS=("${ARGS[@]:1}")
fi
if test "${ARGS[0]}" == "stable"; then
TOOLCHAIN="stable" # redundant as this is the default
ARGS=("${ARGS[@]:1}")
fi
if [[ "${ARGS[0]}" == v1* ]]; then
TOOLCHAIN="${ARGS[0]:1}"
ARGS=("${ARGS[@]:1}")
fi
echo "Selected toolchain: ${TOOLCHAIN}"
rustup update "${TOOLCHAIN}"
if test "${ARGS[0]}" == "cargo";then
PRE_COMMAND="cargo +${TOOLCHAIN} "
else
PRE_COMMAND="${ARGS[0]}"
fi
ARGS=("${ARGS[@]:1}")
# ensure toolchain is up-to-date
# recombine remaining arguments
COMMAND=$(
IFS=" "
echo "${ARGS[*]}"
)
# execute command
echo "${PRE_COMMAND} ${COMMAND}"
${PRE_COMMAND} ${COMMAND}