Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
6b288ee
Add a new powerful configuration mechanism
Mar 8, 2020
0d025de
Fix PBS backend delaying job cancellation if necessary
Mar 25, 2020
94ec545
Minor CI and unit test fixes
Mar 25, 2020
210c1c8
CI fixes
Mar 25, 2020
0db6eb4
Fix PEP8 issues
Mar 26, 2020
ef9f1f3
Merge branch 'feat/new-config-mechanism' of github.com:vkarak/reframe…
Mar 26, 2020
8c5c183
Add generic command line option for showing configuration parameters
Mar 28, 2020
2d08d3f
Move checks about config options trailing slashes
Mar 29, 2020
fa5efe8
Fix crash when launching outside reframe top-level dir
Mar 29, 2020
a6790b9
Merge branch 'master' into feat/new-config-mechanism
Mar 29, 2020
6233c55
Refine printing for ReFrame directories and basic setup info
Mar 29, 2020
e960d54
Remove stale function from `System` class
Mar 29, 2020
d1fd183
Remove unit tests for `--show-env-config` option
Mar 29, 2020
cc36ee5
Integrate properly logging with the new configuration mechanism
Mar 31, 2020
949baed
Handle errors generated by init_runtime() from user's config.
Apr 2, 2020
2f4e0b6
Allow options not associated with command line arguments in ArgumentP…
Apr 2, 2020
4afe4b5
Convert binary environment variables to boolean values
Apr 2, 2020
7dcaf63
Add environment variable for setting the Graylog server
Apr 3, 2020
2a48bfa
Fix tutorial settings
Apr 3, 2020
8f1a80b
Fix PEP8 complaint
Apr 3, 2020
33ad013
Fix prefix creation in filelog handler
Apr 3, 2020
196d0d3
Update comments of ArgumentParser
Apr 5, 2020
c64d28b
Address PR comments
Apr 5, 2020
f111962
Address PR comments (fix unit tests)
Apr 5, 2020
2d5ad6c
Merge branch 'master' into feat/new-config-mechanism
Apr 21, 2020
99d9e38
Fix syntax error in CSCS configuration
Apr 21, 2020
c5570e0
Update configuration documentation
Apr 21, 2020
8834c35
Add a full configuration reference
Apr 25, 2020
4494d48
Fix schema syntax
Apr 29, 2020
bb4552e
Update Running Guide
Apr 29, 2020
fb4c76c
Add missing file + documentation fixes
Apr 30, 2020
2b685ea
Add migration guide for the configuration
Apr 30, 2020
cbe84d6
Document environment variables not attached to configuration options
Apr 30, 2020
054e0bd
Merge branch 'master' into feat/new-config-mechanism
Apr 30, 2020
4567249
Fix conflicts (follow up)
Apr 30, 2020
1dce532
Address ekouts' comments
May 5, 2020
1ec2458
Address teojgo's comments
May 5, 2020
cfd3420
Address more teojgo's comments
May 5, 2020
8cefd02
Update migration guide
May 6, 2020
4fdec03
Merge branch 'feat/new-config-mechanism' of github.com:vkarak/reframe…
May 6, 2020
96b756b
Merge branch 'master' into feat/new-config-mechanism
May 6, 2020
d686841
Apply fix to SelfKillCheck
May 6, 2020
c91e45b
Update migration guide
May 6, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 39 additions & 46 deletions ci-scripts/ci-runner.bash
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ EOF

checked_exec()
{
"$@"
echo "[RUN] $@" && "$@"
if [ $? -ne 0 ]; then
CI_EXITCODE=1
fi
Expand All @@ -43,27 +43,18 @@ run_tutorial_checks()
{
cmd="./bin/reframe -C tutorial/config/settings.py \
--save-log-files -r -t tutorial $@"
echo "Running tutorial checks with \`$cmd'"
echo "[INFO] Running tutorial checks with \`$cmd'"
checked_exec $cmd
}

run_user_checks()
{
cmd="./bin/reframe -C config/cscs.py --save-log-files \
-r --flex-alloc-nodes=2 -t production|benchmark $@"
echo "Running user checks with \`$cmd'"
echo "[INFO] Running user checks with \`$cmd'"
checked_exec $cmd
}

run_serial_user_checks()
{
cmd="./bin/reframe -C config/cscs.py --exec-policy=serial --save-log-files \
-r -t production-serial $@"
echo "Running user checks with \`$cmd'"
checked_exec $cmd
}


### Main script ###

shortopts="h,g,t,f:,i:,l:,m:"
Expand Down Expand Up @@ -105,7 +96,7 @@ while [ $# -ne 0 ]; do
--)
;;
*)
echo "${scriptname}: Unrecognized argument \`$1'" >&2
echo "[ERROR] ${scriptname}: Unrecognized argument \`$1'" >&2
usage
exit 1 ;;
esac
Expand Down Expand Up @@ -144,27 +135,24 @@ fi
# Always install our requirements
python3 -m venv venv.unittests
source venv.unittests/bin/activate
pip install --upgrade pip
pip install -r requirements.txt

# FIXME: XALT is causing linking problems (see UES-823)
module unload xalt

echo "=============="
echo "Loaded Modules"
echo "=============="
echo "[INFO] Loaded Modules"
module list


cd ${CI_FOLDER}
echo "Running regression on $(hostname) in ${CI_FOLDER}"
echo "[INFO] Running unit tests on $(hostname) in ${CI_FOLDER}"

if [ $CI_GENERIC -eq 1 ]; then
# Run unit tests for the public release
echo "========================================"
echo "Running unit tests with generic settings"
echo "========================================"
checked_exec ./test_reframe.py -W=error::reframe.core.exceptions.ReframeDeprecationWarning
checked_exec ! ./bin/reframe.py -W=error::reframe.core.exceptions.ReframeDeprecationWarning --system=generic -l 2>&1 | \
echo "[INFO] Running unit tests with generic settings"
checked_exec ./test_reframe.py \
-W=error::reframe.core.exceptions.ReframeDeprecationWarning -ra
checked_exec ! ./bin/reframe.py --system=generic -l 2>&1 | \
grep -- '--- Logging error ---'
elif [ $CI_TUTORIAL -eq 1 ]; then
# Run tutorial checks
Expand All @@ -173,55 +161,60 @@ elif [ $CI_TUTORIAL -eq 1 ]; then
grep -e '^tutorial/(?!config/).*\.py') )

if [ ${#tutorialchecks[@]} -ne 0 ]; then
tutorialchecks_path="-c $(IFS=: eval 'echo "${tutorialchecks[*]}"')"
tutorialchecks_path=""
for check in ${tutorialchecks[@]}; do
tutorialchecks_path="${tutorialchecks_path} -c ${check}"
done

echo "========================"
echo "Modified tutorial checks"
echo "========================"
echo "[INFO] Modified tutorial checks"
echo ${tutorialchecks_path}

for i in ${!invocations[@]}; do
run_tutorial_checks ${tutorialchecks_path} ${invocations[i]}
done
fi
else
# Performing the unittests
echo "=================="
echo "Running unit tests"
echo "=================="

checked_exec ./test_reframe.py -W=error::reframe.core.exceptions.ReframeDeprecationWarning --rfm-user-config=config/cscs-ci.py

# Run unit tests with the scheduler backends
tempdir=$(mktemp -d -p $SCRATCH)
if [[ $(hostname) =~ dom ]]; then
PATH_save=$PATH
for backend in pbs torque; do
echo "=================================="
echo "Running unit tests with ${backend}"
echo "=================================="
export PATH=/apps/dom/UES/karakasv/slurm-wrappers/bin:$PATH
checked_exec ./test_reframe.py -W=error::reframe.core.exceptions.ReframeDeprecationWarning --rfm-user-config=config/cscs-${backend}.py
export PATH=/apps/dom/UES/karakasv/slurm-wrappers/bin:$PATH
for backend in slurm pbs torque; do
echo "[INFO] Running unit tests with ${backend}"
checked_exec ./test_reframe.py --rfm-user-config=config/cscs-ci.py \
-W=error::reframe.core.exceptions.ReframeDeprecationWarning \
--rfm-user-system=dom:${backend} --basetemp=$tempdir -ra
done
export PATH=$PATH_save
else
echo "[INFO] Running unit tests"
checked_exec ./test_reframe.py --rfm-user-config=config/cscs-ci.py \
-W=error::reframe.core.exceptions.ReframeDeprecationWarning \
--basetemp=$tempdir -ra
fi

if [ $CI_EXITCODE -eq 0 ]; then
/bin/rm -rf $tempdir
fi

# Find modified or added user checks
userchecks=( $(git diff origin/master...HEAD --name-only --oneline --no-merges | \
grep -e '^cscs-checks/.*\.py') )
if [ ${#userchecks[@]} -ne 0 ]; then
userchecks_path="-c $(IFS=: eval 'echo "${userchecks[*]}"')"
userchecks_path=""
for check in ${userchecks[@]}; do
userchecks_path="${userchecks_path} -c ${check}"
done

echo "===================="
echo "Modified user checks"
echo "===================="
echo "[INFO] Modified user checks"
echo ${userchecks_path}

#
# Running the user checks
#
for i in ${!invocations[@]}; do
run_user_checks ${userchecks_path} ${invocations[i]}
run_serial_user_checks ${userchecks_path} ${invocations[i]}
done
fi
fi
deactivate
exit $CI_EXITCODE
Loading