mirror of
https://github.com/RustPython/RustPython.git
synced 2026-06-02 19:39:49 +09:00
76 lines
1.9 KiB
Bash
Executable File
76 lines
1.9 KiB
Bash
Executable File
|
|
# Pre Delivery Check - or PDC for short - runs all build and check steps.
|
|
# The intention is to run all checks before delivering (or raising a PR or committing or what ever you want to use it for).
|
|
#
|
|
# PDC executes all of the configured actions in the given order and reports which of them failed,
|
|
# without stopping in case of an fail.
|
|
# The actions in the given version are the RustPython CI steps plus a debug build in advance.
|
|
# So you can run all of the checks in advance with one command.
|
|
#
|
|
# If you want to customize it or adapt the checks, just add or remove it from/ to the ACTIONS
|
|
|
|
# Preparation steps run before the first action is executed
|
|
# Typically we clear here the python cache to prevent dirty
|
|
# test results from cached python programs.
|
|
PRE_GLOBAL=("clear_pycache")
|
|
|
|
# Postprocessing steps run after the last ACTION has finished
|
|
POST_GLOBAL=()
|
|
|
|
# Preprocessing steps run before each action is executed
|
|
PRE_ACT=()
|
|
|
|
# Postprocessing steps run after each action is executed
|
|
POST_ACT=()
|
|
|
|
ACTIONS=("cargo build" "cargo build --release" "cargo fmt --all" "cargo clippy --all -- -Dwarnings" "cargo test --all" "cargo run --release -- -m test -v" "cd extra_tests" "pytest" "cd ..")
|
|
|
|
# Usually, there should be no need to adapt the remaining file, when adding or removing actions.
|
|
|
|
# clears the python cache or RustPython
|
|
clear_pycache() { find . -name __pycache__ -type d -exec rm -r {} \; ; }
|
|
|
|
RUSTPYTHONPATH=Lib
|
|
export RUSTPYTHONPATH
|
|
|
|
ACT_RES=0
|
|
FAILS=()
|
|
|
|
for pre in "${PRE_GLOBAL[@]}"; do
|
|
$pre
|
|
done
|
|
|
|
for act in "${ACTIONS[@]}"; do
|
|
|
|
for pre in "${PRE_ACTION[@]}"; do
|
|
$pre
|
|
done
|
|
|
|
$act
|
|
if ! [ $? -eq 0 ]; then
|
|
ACT_RES=1
|
|
FAILS+=("${act}")
|
|
fi
|
|
|
|
for pst in "${POST_ACTION[@]}"; do
|
|
$pst
|
|
done
|
|
done
|
|
|
|
for pst in "${POST_GLOBAL[@]}"; do
|
|
$pst
|
|
done
|
|
|
|
echo
|
|
echo
|
|
echo "*********************"
|
|
if ! [ $ACT_RES -eq 0 ]; then
|
|
echo "PDC failed"
|
|
for el in "${FAILS[@]}"; do
|
|
echo " Fail ${el}"
|
|
done
|
|
echo
|
|
else
|
|
echo "PDC passed"
|
|
fi
|