+ set +x /home/tcwg-buildslave/workspace/tcwg_gnu_0/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts __stage full __verbose true __build_script tcwg_gnu-build.sh + false + dryrun= + declare top_artifacts ci_project ci_config + declare change_kind changed_single_component last_good first_bad + declare -a changed_components + declare print_commits_f print_result_f print_config_f print_last_icommit_f + dump_model_only=false # setup_notify_environment + setup_notify_environment + echo '# setup_notify_environment' + top_artifacts=artifacts ++ get_current_manifest '{rr[ci_project]}' ++ get_manifest artifacts/manifest.sh '{rr[ci_project]}' ++ set +x + ci_project=tcwg_gnu_cross_check_gcc ++ get_current_manifest '{rr[ci_config]}' ++ get_manifest artifacts/manifest.sh '{rr[ci_config]}' ++ set +x # Debug traces : + ci_config=master-arm + echo '# Debug traces :' ++ get_baseline_manifest BUILD_URL ++ get_manifest base-artifacts/manifest.sh BUILD_URL false ++ set +x # Baseline : https://ci.linaro.org/job/tcwg_gnu_cross_check_gcc--master-arm-build/1140/ # Using dir : base-artifacts + echo '# Baseline : https://ci.linaro.org/job/tcwg_gnu_cross_check_gcc--master-arm-build/1140/' + echo '# Using dir : base-artifacts' ++ get_current_manifest BUILD_URL ++ get_manifest artifacts/manifest.sh BUILD_URL ++ set +x # Artifacts : https://ci.linaro.org/job/tcwg_gnu_cross_check_gcc--master-arm-build/1141/ # Using dir : artifacts + echo '# Artifacts : https://ci.linaro.org/job/tcwg_gnu_cross_check_gcc--master-arm-build/1141/' + echo '# Using dir : artifacts' + echo '' + mkdir -p artifacts/notify # check_source_changes + case "$notify" in + declare -Ag pw + '[' ignore = precommit ']' + check_source_changes + echo '# check_source_changes' ++ get_current_manifest '{rr[update_baseline]}' ++ get_manifest artifacts/manifest.sh '{rr[update_baseline]}' ++ set +x + '[' onsuccess '!=' init ']' + IFS=' ' + read -r -a changed_components ++ print_changed_components ++ set -euf -o pipefail ++ local c delim= +++ print_updated_components +++ set -euf -o pipefail +++ local c delim= +++ for c in ${rr[components]} +++ '[' xbaseline '!=' xbaseline ']' +++ for c in ${rr[components]} +++ '[' xhttps://github.com/gcc-mirror/gcc.git#master '!=' xbaseline ']' +++ echo -ne gcc +++ delim=' ' +++ for c in ${rr[components]} +++ '[' xbaseline '!=' xbaseline ']' +++ for c in ${rr[components]} +++ '[' xbaseline '!=' xbaseline ']' +++ for c in ${rr[components]} +++ '[' xbaseline '!=' xbaseline ']' +++ for c in ${rr[components]} +++ '[' xbaseline '!=' xbaseline ']' +++ echo ++ for c in $(print_updated_components) +++ get_current_git gcc_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No gcc_rev in current git' '[' -f artifacts/git/gcc_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/gcc_rev +++ get_baseline_git gcc_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No gcc_rev in baseline git' '[' -f base-artifacts/git/gcc_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/gcc_rev ++ '[' xf19ceb2d49afdfa527d2109476a3f1d383c47e1b '!=' xfe54b57728c09ab0389e2bb3f079d5210566199d ']' ++ echo -ne gcc ++ delim=' ' ++ echo + local c base_rev cur_rev c_commits + '[' 1 = 0 ']' + '[' 1 = 1 ']' + changed_single_component=gcc ++ get_current_git gcc_rev ++ set -euf -o pipefail ++ assert_with_msg 'ERROR: No gcc_rev in current git' '[' -f artifacts/git/gcc_rev ']' ++ set -euf -o pipefail +x ++ cat artifacts/git/gcc_rev + first_bad=f19ceb2d49afdfa527d2109476a3f1d383c47e1b ++ get_baseline_git gcc_rev ++ set -euf -o pipefail ++ local base_artifacts=base-artifacts ++ assert_with_msg 'ERROR: No gcc_rev in baseline git' '[' -f base-artifacts/git/gcc_rev ']' ++ set -euf -o pipefail +x ++ cat base-artifacts/git/gcc_rev + last_good=fe54b57728c09ab0389e2bb3f079d5210566199d + local res + res=0 + wait 2080237 + git -C gcc rev-parse --verify HEAD + assert_with_msg 'Cannot parse HEAD in repo gcc' '[' 0 = 0 ']' + set -euf -o pipefail +x + single_commit_p gcc + set -euf -o pipefail + local c=gcc + local base_rev cur_rev sha1 ++ get_baseline_git gcc_rev ++ set -euf -o pipefail ++ local base_artifacts=base-artifacts ++ assert_with_msg 'ERROR: No gcc_rev in baseline git' '[' -f base-artifacts/git/gcc_rev ']' ++ set -euf -o pipefail +x ++ cat base-artifacts/git/gcc_rev + base_rev=fe54b57728c09ab0389e2bb3f079d5210566199d ++ get_current_git gcc_rev ++ set -euf -o pipefail ++ assert_with_msg 'ERROR: No gcc_rev in current git' '[' -f artifacts/git/gcc_rev ']' ++ set -euf -o pipefail +x ++ cat artifacts/git/gcc_rev + cur_rev=f19ceb2d49afdfa527d2109476a3f1d383c47e1b ++ git -C gcc rev-parse 'f19ceb2d49afdfa527d2109476a3f1d383c47e1b^@' # Debug traces : # change_kind=single_component : gcc + for sha1 in $(git -C "$c" rev-parse "$cur_rev^@") + '[' 80b8f1e53502a398248bbf10bf59f7d5b0f1c861 = fe54b57728c09ab0389e2bb3f079d5210566199d ']' + return 1 + change_kind=single_component + echo '# Debug traces :' + echo '# change_kind=single_component : gcc' + for c in "${changed_components[@]}" ++ get_baseline_git gcc_rev ++ set -euf -o pipefail ++ local base_artifacts=base-artifacts ++ assert_with_msg 'ERROR: No gcc_rev in baseline git' '[' -f base-artifacts/git/gcc_rev ']' ++ set -euf -o pipefail +x ++ cat base-artifacts/git/gcc_rev + base_rev=fe54b57728c09ab0389e2bb3f079d5210566199d ++ get_current_git gcc_rev ++ set -euf -o pipefail ++ assert_with_msg 'ERROR: No gcc_rev in current git' '[' -f artifacts/git/gcc_rev ']' ++ set -euf -o pipefail +x ++ cat artifacts/git/gcc_rev + cur_rev=f19ceb2d49afdfa527d2109476a3f1d383c47e1b ++ git -C gcc rev-list --count fe54b57728c09ab0389e2bb3f079d5210566199d..f19ceb2d49afdfa527d2109476a3f1d383c47e1b # rev for gcc : fe54b57728c09ab0389e2bb3f079d5210566199d..f19ceb2d49afdfa527d2109476a3f1d383c47e1b (283 commits) + c_commits=283 + echo '# rev for gcc : fe54b57728c09ab0389e2bb3f079d5210566199d..f19ceb2d49afdfa527d2109476a3f1d383c47e1b (283 commits)' + echo '' + setup_stages_to_run + '[' ignore = onregression ']' + '[' ignore = precommit ']' + '[' ignore = ignore ']' + post_jira_comment=false + post_jira_card=false + post_icommits=false + '[' ignore = ignore ']' + post_mail=false + '[' ignore = precommit ']' + generate_dashboard=false + post_dashboard=false + print_commits_f=print_commits + print_result_f=print_result + print_config_f=print_config + print_last_icommit_f=print_last_icommit + generate_extra_details_f=generate_extra_details + case "$ci_project" in + print_result_f=gnu_print_result + generate_extra_details_f=gnu_generate_extra_details + print_config_f=gnu_print_config + post_interesting_commits init # post_interesting_commits + set -euf -o pipefail + echo '# post_interesting_commits' + local stage=init + '[' single_component '!=' single_commit ']' + return + '[' full '!=' full ']' + gnu_generate_extra_details + set -euf -o pipefail + '[' -d artifacts/sumfiles ']' + wait 2080261 + gcc-compare-results/compare_tests -compr none -pass-thresh 0.9 base-artifacts/sumfiles artifacts/sumfiles + true + calculate_results_date + set -euf -o pipefail + local c base_d cur_d results_date=0 ++ get_current_manifest '{rr[components]}' ++ get_manifest artifacts/manifest.sh '{rr[components]}' ++ set +x + for c in $(get_current_manifest "{rr[components]}") ++ get_baseline_component_date binutils ++ set -euf -o pipefail ++ local base_artifacts=base-artifacts ++ assert_with_msg 'ERROR: No binutils in current git' '[' -f base-artifacts/git/binutils_rev ']' ++ set -euf -o pipefail +x +++ cat base-artifacts/git/binutils_rev ++ git -C binutils show --no-patch --pretty=%ct e7a293f376fef110ae59f5b9ae5bf0aaca68a4da + base_d=1703548868 ++ get_current_component_date binutils ++ set -euf -o pipefail ++ assert_with_msg 'ERROR: No binutils in current git' '[' -f artifacts/git/binutils_rev ']' ++ set -euf -o pipefail +x +++ cat artifacts/git/binutils_rev ++ git -C binutils show --no-patch --pretty=%ct e7a293f376fef110ae59f5b9ae5bf0aaca68a4da + cur_d=1703548868 + '[' x1703548868 '!=' x ']' + '[' x1703548868 = x ']' + '[' 1703548868 -lt 1703548868 ']' + '[' x1703548868 = x ']' + '[' 1703548868 -gt 0 ']' + results_date=1703548868 + for c in $(get_current_manifest "{rr[components]}") ++ get_baseline_component_date gcc ++ set -euf -o pipefail ++ local base_artifacts=base-artifacts ++ assert_with_msg 'ERROR: No gcc in current git' '[' -f base-artifacts/git/gcc_rev ']' ++ set -euf -o pipefail +x +++ cat base-artifacts/git/gcc_rev ++ git -C gcc show --no-patch --pretty=%ct fe54b57728c09ab0389e2bb3f079d5210566199d + base_d=1702598364 ++ get_current_component_date gcc ++ set -euf -o pipefail ++ assert_with_msg 'ERROR: No gcc in current git' '[' -f artifacts/git/gcc_rev ']' ++ set -euf -o pipefail +x +++ cat artifacts/git/gcc_rev ++ git -C gcc show --no-patch --pretty=%ct f19ceb2d49afdfa527d2109476a3f1d383c47e1b + cur_d=1703674924 + '[' x1702598364 '!=' x ']' + '[' x1703674924 = x ']' + '[' 1703674924 -lt 1702598364 ']' + '[' x1703674924 = x ']' + '[' 1703674924 -gt 1703548868 ']' + results_date=1703674924 + for c in $(get_current_manifest "{rr[components]}") ++ get_baseline_component_date linux ++ set -euf -o pipefail ++ local base_artifacts=base-artifacts ++ assert_with_msg 'ERROR: No linux in current git' '[' -f base-artifacts/git/linux_rev ']' ++ set -euf -o pipefail +x +++ cat base-artifacts/git/linux_rev ++ git -C linux show --no-patch --pretty=%ct fbafc3e621c3f4ded43720fdb1d6ce1728ec664e + base_d=1703541046 ++ get_current_component_date linux ++ set -euf -o pipefail ++ assert_with_msg 'ERROR: No linux in current git' '[' -f artifacts/git/linux_rev ']' ++ set -euf -o pipefail +x +++ cat artifacts/git/linux_rev ++ git -C linux show --no-patch --pretty=%ct fbafc3e621c3f4ded43720fdb1d6ce1728ec664e + cur_d=1703541046 + '[' x1703541046 '!=' x ']' + '[' x1703541046 = x ']' + '[' 1703541046 -lt 1703541046 ']' + '[' x1703541046 = x ']' + '[' 1703541046 -gt 1703674924 ']' + for c in $(get_current_manifest "{rr[components]}") ++ get_baseline_component_date glibc ++ set -euf -o pipefail ++ local base_artifacts=base-artifacts ++ assert_with_msg 'ERROR: No glibc in current git' '[' -f base-artifacts/git/glibc_rev ']' ++ set -euf -o pipefail +x +++ cat base-artifacts/git/glibc_rev ++ git -C glibc show --no-patch --pretty=%ct 81be2a61dafc168327c1639e97b6dae128c7ccf3 + base_d=1703252237 ++ get_current_component_date glibc ++ set -euf -o pipefail ++ assert_with_msg 'ERROR: No glibc in current git' '[' -f artifacts/git/glibc_rev ']' ++ set -euf -o pipefail +x +++ cat artifacts/git/glibc_rev ++ git -C glibc show --no-patch --pretty=%ct 81be2a61dafc168327c1639e97b6dae128c7ccf3 + cur_d=1703252237 + '[' x1703252237 '!=' x ']' + '[' x1703252237 = x ']' + '[' 1703252237 -lt 1703252237 ']' + '[' x1703252237 = x ']' + '[' 1703252237 -gt 1703674924 ']' + for c in $(get_current_manifest "{rr[components]}") ++ get_baseline_component_date gdb ++ set -euf -o pipefail ++ local base_artifacts=base-artifacts ++ assert_with_msg 'ERROR: No gdb in current git' '[' -f base-artifacts/git/gdb_rev ']' ++ set -euf -o pipefail +x +++ cat base-artifacts/git/gdb_rev ++ git -C gdb show --no-patch --pretty=%ct e7a293f376fef110ae59f5b9ae5bf0aaca68a4da + base_d=1703548868 ++ get_current_component_date gdb ++ set -euf -o pipefail ++ assert_with_msg 'ERROR: No gdb in current git' '[' -f artifacts/git/gdb_rev ']' ++ set -euf -o pipefail +x +++ cat artifacts/git/gdb_rev ++ git -C gdb show --no-patch --pretty=%ct e7a293f376fef110ae59f5b9ae5bf0aaca68a4da + cur_d=1703548868 + '[' x1703548868 '!=' x ']' + '[' x1703548868 = x ']' + '[' 1703548868 -lt 1703548868 ']' + '[' x1703548868 = x ']' + '[' 1703548868 -gt 1703674924 ']' + for c in $(get_current_manifest "{rr[components]}") ++ get_baseline_component_date qemu ++ set -euf -o pipefail ++ local base_artifacts=base-artifacts ++ assert_with_msg 'ERROR: No qemu in current git' '[' -f base-artifacts/git/qemu_rev ']' ++ set -euf -o pipefail +x +++ cat base-artifacts/git/qemu_rev ++ git -C qemu show --no-patch --pretty=%ct 80f1709aa0eb4de09b4240563463f991a5b9d855 + base_d=1703205859 ++ get_current_component_date qemu ++ set -euf -o pipefail ++ assert_with_msg 'ERROR: No qemu in current git' '[' -f artifacts/git/qemu_rev ']' ++ set -euf -o pipefail +x +++ cat artifacts/git/qemu_rev ++ git -C qemu show --no-patch --pretty=%ct 80f1709aa0eb4de09b4240563463f991a5b9d855 + cur_d=1703205859 + '[' x1703205859 '!=' x ']' + '[' x1703205859 = x ']' + '[' 1703205859 -lt 1703205859 ']' + '[' x1703205859 = x ']' + '[' 1703205859 -gt 1703674924 ']' + assert_with_msg 'Failed to produce results_date' '[' 1703674924 -gt 0 ']' + set -euf -o pipefail +x ++ get_baseline_manifest '{rr[results_date]}' ++ get_manifest base-artifacts/manifest.sh '{rr[results_date]}' false ++ set +x + base_d=1703543940 + '[' 1703543940 '!=' '' ']' + '[' 1703674924 -gt 1703543940 ']' + results_date=1703609432 + rr[results_date]=1703609432 + manifest_out + cat + cat + check_if_first_report + declare -g first_icommit_to_report + first_icommit_to_report=false + '[' xsingle_component '!=' xsingle_commit ']' + return + post_interesting_commits full # post_interesting_commits + set -euf -o pipefail + echo '# post_interesting_commits' + local stage=full + '[' single_component '!=' single_commit ']' + return + true + generate_jira_dir + set -euf -o pipefail + local icommit_entry jira_key= ++ print_last_icommit --entry ++ false ++ set -euf -o pipefail ++ local print_arg=--entry ++ shift 1 ++ '[' xsingle_component '!=' xsingle_commit ']' ++ return 0 + icommit_entry= + '[' '' '!=' '' ']' + mkdir -p artifacts/notify/jira + '[' '' '!=' '' ']' + cat ++ print_jira_template_card ++ local jira_card=GNU-692 ++ case "$ci_project/$ci_config:$changed_single_component" in ++ echo GNU-692 ++ gnu_print_result --oneline ++ false ++ local print_arg=--oneline ++ '[' -d artifacts/sumfiles ']' ++ local validate_failures=gcc-compare-results/contrib/testsuite-management/validate_failures.py ++ local xfails=artifacts/sumfiles/xfails.xfail ++ '[' -f artifacts/sumfiles/xfails.xfail ']' ++ wait 2080429 ++ gcc-compare-results/contrib/testsuite-management/validate_failures.py --manifest=artifacts/sumfiles/xfails.xfail --expiry_date=20231227 --build_dir=artifacts/sumfiles --verbosity=1 ++ gcc-compare-results/contrib/testsuite-management/validate_failures.py --inverse_match --manifest=artifacts/sumfiles/xfails.xfail --expiry_date=20231227 --build_dir=artifacts/sumfiles --verbosity=1 ++ wait 2080430 ++ true ++ local n_regressions n_progressions pass_fail=PASS ++ '[' 0 '!=' 0 ']' +++ grep -c '^[A-Z]\+:' artifacts/notify/regressions.sum +++ true ++ n_regressions=0 +++ grep -c '^[A-Z]\+:' artifacts/notify/progressions.sum ++ n_progressions=4 ++ printf PASS ++ '[' 0 '!=' 0 ']' ++ rm artifacts/notify/regressions.sum ++ '[' 4 '!=' 0 ']' ++ printf ': 4 progressions' ++ printf '\n' ++ '[' --oneline = --oneline ']' ++ return 0 ++ print_artifacts_url 'notify/mail-body.txt/*view*/' ++ set -euf -o pipefail ++ local url +++ get_current_manifest BUILD_URL +++ get_manifest artifacts/manifest.sh BUILD_URL +++ set +x ++ url=https://ci.linaro.org/job/tcwg_gnu_cross_check_gcc--master-arm-build/1141/artifact/artifacts ++ '[' '' '!=' '' ']' ++ echo 'https://ci.linaro.org/job/tcwg_gnu_cross_check_gcc--master-arm-build/1141/artifact/artifacts/notify/mail-body.txt/*view*/' # print all notification files + echo '# print all notification files' + true + generate_mail_files + set -euf -o pipefail + print_mail_recipients + set -euf -o pipefail + local c=gcc + '[' gcc = '' ']' + local -A emails + emails["tcwg-validation@linaro.org"]=bcc + emails["author"]=cc + emails["committer"]=to + case "$ci_project/$ci_config:$c" in + emails["gcc-regression@gcc.gnu.org"]=cc_postcommit + local c email base_rev cur_rev ++ get_baseline_git gcc_rev ++ set -euf -o pipefail ++ local base_artifacts=base-artifacts ++ assert_with_msg 'ERROR: No gcc_rev in baseline git' '[' -f base-artifacts/git/gcc_rev ']' ++ set -euf -o pipefail +x ++ cat base-artifacts/git/gcc_rev + base_rev=fe54b57728c09ab0389e2bb3f079d5210566199d ++ get_current_git gcc_rev ++ set -euf -o pipefail ++ assert_with_msg 'ERROR: No gcc_rev in current git' '[' -f artifacts/git/gcc_rev ']' ++ set -euf -o pipefail +x ++ cat artifacts/git/gcc_rev + cur_rev=f19ceb2d49afdfa527d2109476a3f1d383c47e1b + read -r email ++ git -C gcc log --pretty=%ae fe54b57728c09ab0389e2bb3f079d5210566199d..f19ceb2d49afdfa527d2109476a3f1d383c47e1b + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + emails["$email"]=cc + read -r email + local precommit_postcommit=postcommit + '[' '' = '' ']' ++ get_baseline_git gcc_rev ++ set -euf -o pipefail ++ local base_artifacts=base-artifacts ++ assert_with_msg 'ERROR: No gcc_rev in baseline git' '[' -f base-artifacts/git/gcc_rev ']' ++ set -euf -o pipefail +x ++ cat base-artifacts/git/gcc_rev + base_rev=fe54b57728c09ab0389e2bb3f079d5210566199d ++ get_current_git gcc_rev ++ set -euf -o pipefail ++ assert_with_msg 'ERROR: No gcc_rev in current git' '[' -f artifacts/git/gcc_rev ']' ++ set -euf -o pipefail +x ++ cat artifacts/git/gcc_rev + cur_rev=f19ceb2d49afdfa527d2109476a3f1d383c47e1b + read -r email ++ git -C gcc log --pretty=%ce fe54b57728c09ab0389e2bb3f079d5210566199d..f19ceb2d49afdfa527d2109476a3f1d383c47e1b + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + emails["$email"]=to + read -r email + unset 'emails[author]' 'emails[committer]' + local type + recipients=() + local -a recipients + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=bcc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=cc_postcommit + case "$precommit_postcommit:$type" in + type=cc + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + for email in "${!emails[@]}" + type=cc + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$type:$email") + for email in "${!emails[@]}" + type=to + case "$precommit_postcommit:$type" in + case "$type" in + recipients+=("$email") + IFS=, + echo 'cc:liushuyu011@gmail.com,dje.gcc@gmail.com,cc:demin.han@starfivetech.com,hjl.tools@gmail.com,cc:baird@adacore.com,andre.simoesdiasvieira@arm.com,cc:kliemann@adacore.com,roger@nextmovesoftware.com,kmatsui@gcc.gnu.org,sandra@codesourcery.com,cc:arsen@aarsen.me,cc:oliva@adacore.com,cc:ebotcazou@adacore.com,(no_default),gerald@pfeifer.com,krebbel@linux.ibm.com,siddhesh@gotplt.org,xry111@xry111.site,fweimer@redhat.com,david.faust@oracle.com,hp@bitrange.com,bcc:tcwg-validation@linaro.org,poulhies@adacore.com,cc:yangyujie@loongson.cn,arsen@gcc.gnu.org,jakub@redhat.com,polacek@redhat.com,danglin@gcc.gnu.org,gaiusmod2@gmail.com,ubizjak@gmail.com,cc:mary.bennett@embecosm.com,jvdelisle@gcc.gnu.org,wangfeng@eswincomputing.com,haochen.jiang@intel.com,cc:indus@adacore.com,cc:wangpengcheng.pp@bytedance.com,guojiufu@linux.ibm.com,cc:gcc-regression@gcc.gnu.org,cc:zengxiao@eswincomputing.com,anlauf@gmx.de,iant@golang.org,jason@redhat.com,pault@gcc.gnu.org,tamar.christina@arm.com,christophe.lyon@linaro.org,cc:juzhe.zhong@rivai.ai,jlaw@ventanamicro.com,hongyu.wang@intel.com,uecker@tugraz.at,cc:patrick@rivosinc.com,cc:fofanov@adacore.com,syq@gcc.gnu.org,cc:rufus@andestech.com,rguenther@suse.de,cc:bernstein@adacore.com,cc:liwei@loongson.cn,chenglulu@loongson.cn,dizhao@os.amperecomputing.com,vmakarov@redhat.com,cc:bernardi@adacore.com,guihaoc@gcc.gnu.org,gccadmin@gcc.gnu.org,thomas@codesourcery.com,oliva@gnu.org,cc:c@jia.je,cc:dismukes@adacore.com,dmalcolm@redhat.com,cc:trojanek@adacore.com,andrew.carlotti@arm.com,pan2.li@intel.com,julian@codesourcery.com,cc:desplanques@adacore.com,cc:xujiahao@loongson.cn,cc:hp@axis.com,xuli1@eswincomputing.com,jeevitha@linux.ibm.com,nathanieloshead@gmail.com,fxcoudert@gcc.gnu.org,ppalka@redhat.com,wilco.dijkstra@arm.com,cc:moy@adacore.com,cc:chenxiaolong@loongson.cn,alex.coplan@arm.com,cc:rimvydas.jas@gmail.com,richard.sandiford@arm.com,quic_apinski@quicinc.com,linkw@linux.ibm.com,cc:panchenghui@loongson.cn,jwakely@redhat.com' ++ print_commits --oneline ++ set -euf -o pipefail ++ false ++ local print_arg=--oneline ++ '[' single_component = no_change ']' ++ local more_lines ++ '[' single_component = single_commit ']' ++ '[' single_component = single_component ']' ++ local new_commits c base_rev cur_rev c_commits components ++ local commits_or_patches ++ '[' '' '!=' '' ']' ++ commits_or_patches=commits ++ new_commits=0 ++ for c in "${changed_components[@]}" +++ get_baseline_git gcc_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No gcc_rev in baseline git' '[' -f base-artifacts/git/gcc_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/gcc_rev ++ base_rev=fe54b57728c09ab0389e2bb3f079d5210566199d +++ get_current_git gcc_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No gcc_rev in current git' '[' -f artifacts/git/gcc_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/gcc_rev ++ cur_rev=f19ceb2d49afdfa527d2109476a3f1d383c47e1b +++ git -C gcc rev-list --count fe54b57728c09ab0389e2bb3f079d5210566199d..f19ceb2d49afdfa527d2109476a3f1d383c47e1b ++ c_commits=283 ++ new_commits=283 +++ echo gcc +++ tr ' ' , ++ components=gcc ++ echo '283 commits in gcc' ++ '[' --oneline = --oneline ']' ++ return 0 ++ gnu_print_result --oneline ++ false ++ local print_arg=--oneline ++ '[' -d artifacts/sumfiles ']' ++ local validate_failures=gcc-compare-results/contrib/testsuite-management/validate_failures.py ++ local xfails=artifacts/sumfiles/xfails.xfail ++ '[' -f artifacts/sumfiles/xfails.xfail ']' ++ wait 2080485 ++ gcc-compare-results/contrib/testsuite-management/validate_failures.py --manifest=artifacts/sumfiles/xfails.xfail --expiry_date=20231227 --build_dir=artifacts/sumfiles --verbosity=1 ++ wait 2080486 ++ gcc-compare-results/contrib/testsuite-management/validate_failures.py --inverse_match --manifest=artifacts/sumfiles/xfails.xfail --expiry_date=20231227 --build_dir=artifacts/sumfiles --verbosity=1 ++ true ++ local n_regressions n_progressions pass_fail=PASS ++ '[' 0 '!=' 0 ']' +++ grep -c '^[A-Z]\+:' artifacts/notify/regressions.sum +++ true ++ n_regressions=0 +++ grep -c '^[A-Z]\+:' artifacts/notify/progressions.sum ++ n_progressions=4 ++ printf PASS ++ '[' 0 '!=' 0 ']' ++ rm artifacts/notify/regressions.sum ++ '[' 4 '!=' 0 ']' ++ printf ': 4 progressions' ++ printf '\n' ++ '[' --oneline = --oneline ']' ++ return 0 ++ gnu_print_config --oneline ++ false ++ . /home/tcwg-buildslave/workspace/tcwg_gnu_0/jenkins-scripts/tcwg_gnu-config.sh +++ declare -A gnu_data ++ settings_for_ci_project_and_config tcwg_gnu_cross_check_gcc master-arm ++ local project=tcwg_gnu_cross_check_gcc ++ local config=master-arm ++ gnu_data[gcc_override_configure]= ++ gnu_data[gcc_target_board_options]= ++ gnu_data[qemu_cpu]= ++ gnu_data[pretty_project]= ++ gnu_data[pretty_config]=master-arm ++ gnu_data[long_config]=master-arm ++ case "$project/$config" in ++ local print_arg=--oneline ++ case "$print_arg" in ++ print_config --oneline ++ false ++ local print_arg=--oneline ++ case "$print_arg" in ++ case "$ci_config" in ++ echo arm + echo '[Linaro-TCWG-CI]' '283 commits in gcc: PASS: 4 progressions on arm' + print_mail_body + local bad_artifacts_url good_artifacts_url ++ get_current_manifest BUILD_URL ++ get_manifest artifacts/manifest.sh BUILD_URL ++ set +x + bad_artifacts_url=https://ci.linaro.org/job/tcwg_gnu_cross_check_gcc--master-arm-build/1141/artifact/artifacts ++ get_baseline_manifest BUILD_URL ++ get_manifest base-artifacts/manifest.sh BUILD_URL false ++ set +x + good_artifacts_url=https://ci.linaro.org/job/tcwg_gnu_cross_check_gcc--master-arm-build/1140/artifact/artifacts + local key= + '[' single_component = single_commit ']' + cat + '[' '' '!=' '' ']' + cat ++ gnu_print_config --short ++ false ++ . /home/tcwg-buildslave/workspace/tcwg_gnu_0/jenkins-scripts/tcwg_gnu-config.sh +++ declare -A gnu_data ++ settings_for_ci_project_and_config tcwg_gnu_cross_check_gcc master-arm ++ local project=tcwg_gnu_cross_check_gcc ++ local config=master-arm ++ gnu_data[gcc_override_configure]= ++ gnu_data[gcc_target_board_options]= ++ gnu_data[qemu_cpu]= ++ gnu_data[pretty_project]= ++ gnu_data[pretty_config]=master-arm ++ gnu_data[long_config]=master-arm ++ case "$project/$config" in ++ local print_arg=--short ++ case "$print_arg" in ++ echo ' master-arm' ++ print_commits --short ++ sed -e 's/^/ | /' ++ set -euf -o pipefail ++ false ++ local print_arg=--short ++ '[' single_component = no_change ']' ++ local more_lines ++ '[' single_component = single_commit ']' ++ '[' single_component = single_component ']' ++ local new_commits c base_rev cur_rev c_commits components ++ local commits_or_patches ++ '[' '' '!=' '' ']' ++ commits_or_patches=commits ++ new_commits=0 ++ for c in "${changed_components[@]}" +++ get_baseline_git gcc_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No gcc_rev in baseline git' '[' -f base-artifacts/git/gcc_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/gcc_rev ++ base_rev=fe54b57728c09ab0389e2bb3f079d5210566199d +++ get_current_git gcc_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No gcc_rev in current git' '[' -f artifacts/git/gcc_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/gcc_rev ++ cur_rev=f19ceb2d49afdfa527d2109476a3f1d383c47e1b +++ git -C gcc rev-list --count fe54b57728c09ab0389e2bb3f079d5210566199d..f19ceb2d49afdfa527d2109476a3f1d383c47e1b ++ c_commits=283 ++ new_commits=283 +++ tr ' ' , +++ echo gcc ++ components=gcc ++ echo '283 commits in gcc' ++ '[' --short = --oneline ']' ++ for c in "${changed_components[@]}" +++ get_baseline_git gcc_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No gcc_rev in baseline git' '[' -f base-artifacts/git/gcc_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/gcc_rev ++ base_rev=fe54b57728c09ab0389e2bb3f079d5210566199d +++ get_current_git gcc_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No gcc_rev in current git' '[' -f artifacts/git/gcc_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/gcc_rev ++ cur_rev=f19ceb2d49afdfa527d2109476a3f1d383c47e1b +++ git -C gcc rev-list --count fe54b57728c09ab0389e2bb3f079d5210566199d..f19ceb2d49afdfa527d2109476a3f1d383c47e1b ++ c_commits=283 ++ '[' '' '!=' '' ']' ++ git -C gcc log -n 5 --oneline fe54b57728c09ab0389e2bb3f079d5210566199d..f19ceb2d49afdfa527d2109476a3f1d383c47e1b ++ '[' 283 -gt 5 ']' ++ echo '... and 278 more commits in gcc' ++ '[' '' '!=' '' ']' ++ return 0 ++ gnu_print_result --short ++ false ++ local print_arg=--short ++ '[' -d artifacts/sumfiles ']' ++ local validate_failures=gcc-compare-results/contrib/testsuite-management/validate_failures.py ++ local xfails=artifacts/sumfiles/xfails.xfail ++ '[' -f artifacts/sumfiles/xfails.xfail ']' ++ wait 2080543 ++ gcc-compare-results/contrib/testsuite-management/validate_failures.py --manifest=artifacts/sumfiles/xfails.xfail --expiry_date=20231227 --build_dir=artifacts/sumfiles --verbosity=1 ++ wait 2080544 ++ gcc-compare-results/contrib/testsuite-management/validate_failures.py --inverse_match --manifest=artifacts/sumfiles/xfails.xfail --expiry_date=20231227 --build_dir=artifacts/sumfiles --verbosity=1 ++ true ++ local n_regressions n_progressions pass_fail=PASS ++ '[' 0 '!=' 0 ']' +++ grep -c '^[A-Z]\+:' artifacts/notify/regressions.sum +++ true ++ n_regressions=0 +++ grep -c '^[A-Z]\+:' artifacts/notify/progressions.sum ++ n_progressions=4 ++ printf PASS ++ '[' 0 '!=' 0 ']' ++ rm artifacts/notify/regressions.sum ++ '[' 4 '!=' 0 ']' ++ printf ': 4 progressions' ++ printf '\n' ++ '[' --short = --oneline ']' ++ local length=10 outfile n_lines ++ '[' --short = --long ']' ++ for outfile in regressions.sum progressions.sum ++ '[' -f artifacts/notify/regressions.sum ']' ++ continue ++ for outfile in regressions.sum progressions.sum ++ '[' -f artifacts/notify/progressions.sum ']' ++ echo ++ echo progressions.sum: +++ cat artifacts/notify/progressions.sum +++ wc -l ++ n_lines=14 ++ n_lines=4 ++ head -n10 artifacts/notify/progressions.sum ++ '[' 4 -gt 0 ']' ++ '[' 10 '!=' -0 ']' ++ echo '... and 4 more entries' ++ cat +++ print_artifacts_url 00-sumfiles/ +++ set -euf -o pipefail +++ local url ++++ get_current_manifest BUILD_URL ++++ get_manifest artifacts/manifest.sh BUILD_URL ++++ set +x +++ url=https://ci.linaro.org/job/tcwg_gnu_cross_check_gcc--master-arm-build/1141/artifact/artifacts +++ '[' '' '!=' '' ']' +++ echo https://ci.linaro.org/job/tcwg_gnu_cross_check_gcc--master-arm-build/1141/artifact/artifacts/00-sumfiles/ +++ print_artifacts_url notify/ +++ set -euf -o pipefail +++ local url ++++ get_current_manifest BUILD_URL ++++ get_manifest artifacts/manifest.sh BUILD_URL ++++ set +x +++ url=https://ci.linaro.org/job/tcwg_gnu_cross_check_gcc--master-arm-build/1141/artifact/artifacts +++ '[' '' '!=' '' ']' +++ echo https://ci.linaro.org/job/tcwg_gnu_cross_check_gcc--master-arm-build/1141/artifact/artifacts/notify/ +++ print_artifacts_url sumfiles/xfails.xfail +++ set -euf -o pipefail +++ local url ++++ get_current_manifest BUILD_URL ++++ get_manifest artifacts/manifest.sh BUILD_URL ++++ set +x +++ url=https://ci.linaro.org/job/tcwg_gnu_cross_check_gcc--master-arm-build/1141/artifact/artifacts +++ '[' '' '!=' '' ']' +++ echo https://ci.linaro.org/job/tcwg_gnu_cross_check_gcc--master-arm-build/1141/artifact/artifacts/sumfiles/xfails.xfail ++ gnu_print_config --long ++ false ++ . /home/tcwg-buildslave/workspace/tcwg_gnu_0/jenkins-scripts/tcwg_gnu-config.sh +++ declare -A gnu_data ++ settings_for_ci_project_and_config tcwg_gnu_cross_check_gcc master-arm ++ local project=tcwg_gnu_cross_check_gcc ++ local config=master-arm ++ gnu_data[gcc_override_configure]= ++ gnu_data[gcc_target_board_options]= ++ gnu_data[qemu_cpu]= ++ gnu_data[pretty_project]= ++ gnu_data[pretty_config]=master-arm ++ gnu_data[long_config]=master-arm ++ case "$project/$config" in ++ local print_arg=--long ++ case "$print_arg" in ++ echo 'CI config tcwg_gnu_cross_check_gcc master-arm' + '[' single_component '!=' single_commit ']' + return + true + generate_jenkins_html_files + wait 2080587 # generate_jenkins_html_files + set -euf -o pipefail + echo '# generate_jenkins_html_files' + true ... Skipping + case "$ci_project" in + echo '... Skipping' + return + generate_readme html + set -euf -o pipefail + local text_type=html + local gnu_text=false + case "$ci_project" in + case "$ci_project" in + gnu_text=true + local list_start= + local list_end= + local 'list_item=- ' + local new_parag= + '[' html = html ']' + list_start='
' + print_readme_header html + set -euf -o pipefail + local text_type=html + local 'msg=How to browse artifacts of this build' + case $text_type in + cat + cat + '[' -d artifacts/00-sumfiles ']' + cat ++ print_readme_link html 00-sumfiles/ ++ set -euf -o pipefail ++ local text_type=html ++ local msg=00-sumfiles/ ++ case $text_type in ++ echo -n '00-sumfiles/' + cat ++ print_readme_link html git/ ++ set -euf -o pipefail ++ local text_type=html ++ local msg=git/ ++ case $text_type in ++ echo -n 'git/' ++ print_readme_link html jenkins/ ++ set -euf -o pipefail ++ local text_type=html ++ local msg=jenkins/ ++ case $text_type in ++ echo -n 'jenkins/' ++ print_readme_link html notify/ ++ set -euf -o pipefail ++ local text_type=html ++ local msg=notify/ ++ case $text_type in ++ echo -n 'notify/' + true + cat ++ print_readme_link html sumfiles/ ++ set -euf -o pipefail ++ local text_type=html ++ local msg=sumfiles/ ++ case $text_type in ++ echo -n 'sumfiles/' + cat ++ print_readme_link html notify/ ++ set -euf -o pipefail ++ local text_type=html ++ local msg=notify/ ++ case $text_type in ++ echo -n 'notify/' + true + local regressions= + '[' -f artifacts/notify/regressions.sum ']' + cat ++ print_readme_link html notify/results.compare.txt ++ set -euf -o pipefail ++ local text_type=html ++ local msg=notify/results.compare.txt ++ case $text_type in ++ echo -n 'notify/results.compare.txt' + '[' -d artifacts/00-sumfiles ']' + cat ++ print_readme_link html 00-sumfiles/ ++ set -euf -o pipefail ++ local text_type=html ++ local msg=00-sumfiles/ ++ case $text_type in ++ echo -n '00-sumfiles/' + cat + cat + read -r cur_file ++ cd artifacts ++ sort ++ find . -type f ++ print_readme_link html ./00-sumfiles/gcc.log.0.xz ++ set -euf -o pipefail ++ local text_type=html ++ local msg=./00-sumfiles/gcc.log.0.xz ++ case $text_type in ++ echo -n './00-sumfiles/gcc.log.0.xz' + echo '