scripts : stub out new ci-run.sh script
This commit is contained in:
parent
f5f46ebc64
commit
04fee216d3
1 changed files with 69 additions and 0 deletions
69
scripts/ci-run.sh
Executable file
69
scripts/ci-run.sh
Executable file
|
@ -0,0 +1,69 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#### BEGIN SETUP #####
|
||||||
|
set -euo pipefail
|
||||||
|
this=$(realpath -- "$0"); readonly this
|
||||||
|
cd "$(dirname "$this")"
|
||||||
|
shellcheck --external-sources "$this"
|
||||||
|
# shellcheck source=lib.sh
|
||||||
|
source 'lib.sh'
|
||||||
|
#### END SETUP ####
|
||||||
|
|
||||||
|
# TODO: send model to ctest_model tests using env variable
|
||||||
|
# GG_TEST_CTEST_MODEL_MODELFILE=<snip>
|
||||||
|
|
||||||
|
is_valid_test_target() {
|
||||||
|
case "$1" in
|
||||||
|
cmake | ctest_main | model_3b | model_7b | test_cpu | test_cuda | test_metal | ctest_model)
|
||||||
|
return 0;;
|
||||||
|
*)
|
||||||
|
return 1;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
declare -a test_targets
|
||||||
|
if (( $# > 0 )); then
|
||||||
|
test_targets=("$@")
|
||||||
|
elif _isset GG_TEST_TARGETS; then
|
||||||
|
read -r -a test_targets <<< "$GG_TEST_TARGETS"
|
||||||
|
else
|
||||||
|
cat >&2 <<'EOF'
|
||||||
|
You must specify the test targets either as commandline arguments or using the
|
||||||
|
GG_TEST_TARGETS environment variable. Test targets will be run sequentially
|
||||||
|
in-order.
|
||||||
|
|
||||||
|
Some test targets depend on other test targets, as described below.
|
||||||
|
|
||||||
|
cli usage:
|
||||||
|
ci-run.sh test_targets...
|
||||||
|
|
||||||
|
ci usage:
|
||||||
|
GG_TEST_TARGETS='test_targets...' ci-run.sh
|
||||||
|
|
||||||
|
example:
|
||||||
|
# This is a typical run for a low-spec host without a dedicated GPU.
|
||||||
|
ci-run.sh cmake ctest_main model_3b test_cpu ctest_model
|
||||||
|
|
||||||
|
test targets:
|
||||||
|
cmake : run cmake to produce debug and release builds
|
||||||
|
ctest_main : run main ctest tests for debug and release
|
||||||
|
(requires: cmake)
|
||||||
|
model_3b : download and quantize openllama_3b_v2
|
||||||
|
model_7b : download and quantize openllama_7b_v2
|
||||||
|
test_cpu : test CPU inference, perplexity tests, etc.
|
||||||
|
(requires: model_3b or model_7b)
|
||||||
|
test_cuda : test CUDA ...
|
||||||
|
(requires: model_3b or model_7b)
|
||||||
|
test_metal : test Metal ...
|
||||||
|
ctest_model : run ctest tests that require the openllama model
|
||||||
|
(requires: model_3b or model_7b)
|
||||||
|
EOF
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
for target in "${test_targets[@]}"; do
|
||||||
|
if is_valid_test_target "$target"; then
|
||||||
|
_log_info "Received test target: $target"
|
||||||
|
else
|
||||||
|
_log_fatal "Invalid test target: $target"
|
||||||
|
fi
|
||||||
|
done
|
Loading…
Add table
Add a link
Reference in a new issue