Skip to content

Commit

Permalink
Sort crates before splitting them into groups (+ some improvements) (p…
Browse files Browse the repository at this point in the history
…aritytech#12755)

* sort crates before splitting them into groups

this is useful so that crates always get routed to a specific group for a given version of the source code, which means that jobs for each batch can be reliably retried individually

* more verbose output

* misc improvements

* put uniq after sort

uniq filters by adjacent lines

* shellcheck

* rm useless backlashes

* handle edge case of no crates detected
  • Loading branch information
joao-paulo-parity authored and rcny committed Nov 25, 2022
1 parent b04f27c commit fde8391
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions scripts/ci/gitlab/check-each-crate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,23 @@
set -Eeu -o pipefail
shopt -s inherit_errexit

set -x
set -vx

target_group="$1"
groups_total="$2"

readarray -t workspace_crates < <(\
cargo tree --workspace --depth 0 | \
awk '{ if (length($1) == 0 || substr($1, 1, 1) == "[") { skip } else { print $1 } }'
cargo tree --workspace --depth 0 --prefix none |
awk '{ if (length($1) == 0 || substr($1, 1, 1) == "[") { skip } else { print $1 } }' |
sort |
uniq
)

crates_total=${#workspace_crates[*]}
if [ "$crates_total" -lt 1 ]; then
>&2 echo "No crates detected for $PWD"
exit 1
fi

if [ "$crates_total" -lt "$groups_total" ]; then
# `crates_total / groups_total` would result in 0, so round it up to 1
Expand All @@ -37,7 +43,9 @@ fi
group=1
for ((i=0; i < crates_total; i += crates_per_group)); do
if [ $group -eq "$target_group" ]; then
for crate in "${workspace_crates[@]:$i:$crates_per_group}"; do
crates_in_group=("${workspace_crates[@]:$i:$crates_per_group}")
echo "crates in the group: ${crates_in_group[*]}" >/dev/null # >/dev/null due to "set -x"
for crate in "${crates_in_group[@]}"; do
cargo check --locked --release -p "$crate"
done
break
Expand Down

0 comments on commit fde8391

Please sign in to comment.