dhbw-abb-typst-template/run-ci.sh

54 lines
1.7 KiB
Bash
Raw Normal View History

2024-07-01 14:17:54 +00:00
#!/bin/bash
function log() {
local timestamp=$(date +"%Y-%m-%d %H:%M:%S")
echo "$1 at $timestamp: $2"
}
2024-07-01 14:17:54 +00:00
function abort() {
log "ERROR" "test case $1 has failed"
2024-07-01 14:17:54 +00:00
exit 1
}
function print-box() {
printf "\\n"
echo ".----------------------------------------------------------------."
printf "| %-62s |\\n" "$1"
echo "'----------------------------------------------------------------'"
}
2024-07-01 14:17:54 +00:00
function enter-section() {
print-box "$1"
log "INFO" "running task in section $1: $2"
log "INFO" "section output following..."
printf "\\n"
eval "$2"
2024-08-27 17:50:09 +00:00
exit_status=$?
2024-08-27 18:54:33 +00:00
if [ "$3" == "should fail" ]; then
log "INFO" "expected to fail..."
if [ $exit_status -eq 0 ]; then
abort "command: $2 failed in section: $1 with: $exit_status"
fi
else
log "INFO" "expected to pass..."
if [ ! $exit_status -eq 0 ]; then
abort "command: $2 failed in section: $1 with: $exit_status"
fi
fi
printf "\\n"
log "INFO" "section $1 completed successfully"
}
2024-08-27 17:50:31 +00:00
enter-section "Typstyle checking" "./run-fmt.sh --check src/lib.typ" 0
2024-09-27 15:47:08 +00:00
enter-section "Compiling template..." "typst compile template/main.typ --root . --font-path fonts example.pdf"
enter-section "TEST: local template import" "typst compile tests/local-import/main.typ --root . --font-path fonts"
enter-section "TEST: invalid config case 1" "typst compile tests/invalid-config/test-case-1.typ --root . --font-path fonts" "should fail"
enter-section "TEST: invalid config case 2" "typst compile tests/invalid-config/test-case-2.typ --root . --font-path fonts"
enter-section "TEST: invalid config case 3" "typst compile tests/invalid-config/test-case-3.typ --root . --font-path fonts" "should fail"
log "INFO" "CI completed successfully"