mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-12 15:25:57 +00:00
26 lines
923 B
Bash
Executable File
26 lines
923 B
Bash
Executable File
#!/bin/bash
|
|
|
|
# Functions
|
|
function join_by { local IFS="$1"; shift; echo "$*"; }
|
|
|
|
# Arguments:
|
|
CUR_JOB=$(expr $1 - 1)
|
|
MAX_JOBS=$2
|
|
|
|
# Features
|
|
FEATURE_LIST=( $(find cypress/e2e/ -maxdepth 1 -name "*.feature") )
|
|
|
|
# Calculation
|
|
MAX_FEATURES=$(find cypress/e2e/ -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}}) |