mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-13 07:46:06 +00:00
Refactor parallel-features.sh to a general solution
This commit is contained in:
parent
ea521263a5
commit
4f0e33524f
@ -11,9 +11,16 @@ MAX_JOBS=$2
|
||||
FEATURE_LIST=( $(find cypress/integration/ -maxdepth 1 -name "*.feature") )
|
||||
|
||||
# Calculation
|
||||
MAX_FEATURES=$(find cypress/integration/ -maxdepth 1 -name "*.feature" -printf '.' | wc -m)
|
||||
FEATURES_PER_JOB=$(expr $(expr ${MAX_FEATURES} + ${MAX_JOBS} - 1) / ${MAX_JOBS} )
|
||||
FEATURES_SKIP=$(expr $(expr ${CUR_JOB} - 1 ) \* ${FEATURES_PER_JOB} )
|
||||
MAX_FEATURES=$(find cypress/integration/ -maxdepth 1 -name "*.feature" -print | wc -l)
|
||||
# adds overhead features to the first jobs
|
||||
if [[ $CUR_JOB -lt $(expr ${MAX_FEATURES} % ${MAX_JOBS}) ]]
|
||||
then
|
||||
FEATURES_PER_JOB=$(expr ${MAX_FEATURES} / ${MAX_JOBS} + 1)
|
||||
FEATURES_SKIP=$(expr $(expr ${MAX_FEATURES} / ${MAX_JOBS} + 1) \* ${CUR_JOB})
|
||||
else
|
||||
FEATURES_PER_JOB=$(expr ${MAX_FEATURES} / ${MAX_JOBS})
|
||||
FEATURES_SKIP=$(expr $(expr ${MAX_FEATURES} / ${MAX_JOBS} + 1) \* $(expr ${MAX_FEATURES} % ${MAX_JOBS}) + $(expr $(expr ${MAX_FEATURES} / ${MAX_JOBS}) \* $(expr ${CUR_JOB} - ${MAX_FEATURES} % ${MAX_JOBS})))
|
||||
fi
|
||||
|
||||
# Comma separated list
|
||||
echo $(join_by , ${FEATURE_LIST[@]:${FEATURES_SKIP}:${FEATURES_PER_JOB}})
|
||||
Loading…
x
Reference in New Issue
Block a user