Compare commits

...

2 commits

Author SHA1 Message Date
5fc345c0de test: verify matrix with stable and nightly
All checks were successful
/ test (nightly) (push) Successful in 4s
/ test (stable) (push) Successful in 4s
2024-09-16 17:19:34 +01:00
dbe6a60417 feat: allow selecting the nightly toolchain
All checks were successful
/ test (push) Successful in 5s
2024-09-16 17:09:17 +01:00
3 changed files with 67 additions and 10 deletions

View file

@ -5,20 +5,26 @@ on:
jobs:
test:
runs-on: docker
strategy:
matrix:
toolchain:
- stable
- nightly
steps:
- uses: actions/checkout@v4
- name: Test
- name: Test ${{ toolchain}}
uses: https://git.kemitix.net/kemitix/rust@next
with:
args: cargo test
args: ${{toolchain}} cargo test
- name: Build
- name: Build ${{ toolchain }}
uses: https://git.kemitix.net/kemitix/rust@next
with:
args: cargo build
args: ${{ toolchain }} cargo build
- name: Run
- name: Run ${{ toolchain }}
uses: https://git.kemitix.net/kemitix/rust@next
with:
args: cargo run
args: ${{ toolchain }} cargo run

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}