summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cimonitor-configs/CI-TCWG.yaml2
-rw-r--r--cimonitor-configs/LNT.yaml64
-rw-r--r--jenkins-helpers.sh25
-rwxr-xr-xround-robin-baseline.sh17
-rw-r--r--round-robin.sh33
-rwxr-xr-xstart-container-docker.sh2
-rwxr-xr-xtcwg-lnt/create-server.sh28
-rw-r--r--tcwg-lnt/tcwg-lnt-01/config68
-rw-r--r--tcwg-lnt/tcwg-lnt-02/config43
-rw-r--r--tcwg-lnt/tcwg-lnt-03/config67
-rwxr-xr-xtcwg-report-stale-rr-jobs.sh180
-rwxr-xr-xtcwg-start-container.sh2
-rwxr-xr-xtcwg-update-lnt-results.sh46
-rwxr-xr-xtcwg_aosp-build.sh4
-rwxr-xr-xtcwg_bmk-build.sh18
-rwxr-xr-xtcwg_chromium-build.sh10
-rwxr-xr-xtcwg_dummy-build.sh4
-rwxr-xr-xtcwg_gnu-build.sh1
-rwxr-xr-xtcwg_kernel-build.sh4
19 files changed, 319 insertions, 299 deletions
diff --git a/cimonitor-configs/CI-TCWG.yaml b/cimonitor-configs/CI-TCWG.yaml
index 242451b5..68a59be3 100644
--- a/cimonitor-configs/CI-TCWG.yaml
+++ b/cimonitor-configs/CI-TCWG.yaml
@@ -73,6 +73,8 @@ pattern:
- tcwg_bmk-code_speed
- tcwg_bmk-code_speed-coremark
- tcwg_bmk-code_speed-spec2k6
+ - tcwg_bmk-code_speed-cpu2017rate
+ - tcwg_bmk-code_speed-cpu2017speed
- tcwg_bmk-fujitsu_speed
- tcwg_bmk-fujitsu_speed-cpu2017rate
- tcwg_bmk-sve_speed
diff --git a/cimonitor-configs/LNT.yaml b/cimonitor-configs/LNT.yaml
index 3a8980aa..f63174c6 100644
--- a/cimonitor-configs/LNT.yaml
+++ b/cimonitor-configs/LNT.yaml
@@ -1,47 +1,47 @@
filename: "LNT.html"
lnt_dashboard:
binutils:
- - aarch64 http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_binutils_check/graph?plot.298740116162343800.0=231404492126674122.298740116162343800.0&plot.464881508912157184.1=231404492126674122.464881508912157184.1&plot.223571625677554027.2=231404492126674122.223571625677554027.2
- - arm http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_binutils_check/graph?plot.298740116162343800.0=1000400360521891559.298740116162343800.0&plot.464881508912157184.1=1000400360521891559.464881508912157184.1&plot.223571625677554027.2=1000400360521891559.223571625677554027.2
- - trend http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_binutils_check/latest_runs_report
- - details http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_binutils_check/recent_activity
+ - aarch64 http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_binutils_check/graph?plot.298740116162343800.0=231404492126674122.298740116162343800.0&plot.464881508912157184.1=231404492126674122.464881508912157184.1&plot.223571625677554027.2=231404492126674122.223571625677554027.2
+ - arm http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_binutils_check/graph?plot.298740116162343800.0=1000400360521891559.298740116162343800.0&plot.464881508912157184.1=1000400360521891559.464881508912157184.1&plot.223571625677554027.2=1000400360521891559.223571625677554027.2
+ - trend http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_binutils_check/latest_runs_report
+ - details http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_binutils_check/recent_activity
gcc:
- - aarch64 http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gcc_check/graph?plot.298740116162343800.0=231404492126674122.298740116162343800.0&plot.464881508912157184.1=231404492126674122.464881508912157184.1&plot.223571625677554027.2=231404492126674122.223571625677554027.2
- - arm http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gcc_check/graph?plot.298740116162343800.0=1000400360521891559.298740116162343800.0&plot.464881508912157184.1=1000400360521891559.464881508912157184.1&plot.223571625677554027.2=1000400360521891559.223571625677554027.2
- - trend http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gcc_check/latest_runs_report
- - details http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gcc_check/recent_activity
+ - aarch64 http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gcc_check/graph?plot.298740116162343800.0=231404492126674122.298740116162343800.0&plot.464881508912157184.1=231404492126674122.464881508912157184.1&plot.223571625677554027.2=231404492126674122.223571625677554027.2
+ - arm http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gcc_check/graph?plot.298740116162343800.0=1000400360521891559.298740116162343800.0&plot.464881508912157184.1=1000400360521891559.464881508912157184.1&plot.223571625677554027.2=1000400360521891559.223571625677554027.2
+ - trend http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gcc_check/latest_runs_report
+ - details http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gcc_check/recent_activity
cross_gcc:
- - aarch64 http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gnu_cross_check_gcc/graph?plot.298740116162343800.0=231404492126674122.298740116162343800.0&plot.464881508912157184.1=231404492126674122.464881508912157184.1&plot.223571625677554027.2=231404492126674122.223571625677554027.2
- - arm http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gnu_cross_check_gcc/graph?plot.298740116162343800.0=1000400360521891559.298740116162343800.0&plot.464881508912157184.1=1000400360521891559.464881508912157184.1&plot.223571625677554027.2=1000400360521891559.223571625677554027.2
- - trend http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gnu_cross_check_gcc/latest_runs_report
- - details http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gnu_cross_check_gcc/recent_activity
+ - aarch64 http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gnu_cross_check_gcc/graph?plot.298740116162343800.0=231404492126674122.298740116162343800.0&plot.464881508912157184.1=231404492126674122.464881508912157184.1&plot.223571625677554027.2=231404492126674122.223571625677554027.2
+ - arm http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gnu_cross_check_gcc/graph?plot.298740116162343800.0=1000400360521891559.298740116162343800.0&plot.464881508912157184.1=1000400360521891559.464881508912157184.1&plot.223571625677554027.2=1000400360521891559.223571625677554027.2
+ - trend http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gnu_cross_check_gcc/latest_runs_report
+ - details http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gnu_cross_check_gcc/recent_activity
embed_gcc:
- - arm http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gnu_embed_check_gcc/graph?plot.298740116162343800.0=1084008951837733723.298740116162343800.0&plot.464881508912157184.1=1084008951837733723.464881508912157184.1&plot.223571625677554027.2=1084008951837733723.223571625677554027.2
- - arm_v7a_softfp http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gnu_embed_check_gcc/graph?plot.298740116162343800.0=599298826405724921.298740116162343800.0&plot.464881508912157184.1=599298826405724921.464881508912157184.1&plot.223571625677554027.2=599298826405724921.223571625677554027.2
- - thumb_m0 http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gnu_embed_check_gcc/graph?plot.298740116162343800.0=342534359769205202.298740116162343800.0&plot.464881508912157184.1=342534359769205202.464881508912157184.1&plot.223571625677554027.2=342534359769205202.223571625677554027.2
- - thumb_m23 http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gnu_embed_check_gcc/graph?plot.298740116162343800.0=564955760422315397.298740116162343800.0&plot.464881508912157184.1=564955760422315397.464881508912157184.1&plot.223571625677554027.2=564955760422315397.223571625677554027.2
- - thumb_m33 http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gnu_embed_check_gcc/graph?plot.298740116162343800.0=872535828462307163.298740116162343800.0&plot.464881508912157184.1=872535828462307163.464881508912157184.1&plot.223571625677554027.2=872535828462307163.223571625677554027.2
- - thumb_m3 http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gnu_embed_check_gcc/graph?plot.298740116162343800.0=719846687264750394.298740116162343800.0&plot.464881508912157184.1=719846687264750394.464881508912157184.1&plot.223571625677554027.2=719846687264750394.223571625677554027.2
- - thumb_m55_hard http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gnu_embed_check_gcc/graph?plot.298740116162343800.0=399934044803555727.298740116162343800.0&plot.464881508912157184.1=399934044803555727.464881508912157184.1&plot.223571625677554027.2=399934044803555727.223571625677554027.2
- - thumb_m7 http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gnu_embed_check_gcc/graph?plot.298740116162343800.0=789887171421761561.298740116162343800.0&plot.464881508912157184.1=789887171421761561.464881508912157184.1&plot.223571625677554027.2=789887171421761561.223571625677554027.2
- - thumb_v8a_hard http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gnu_embed_check_gcc/graph?plot.298740116162343800.0=619965277143480357.298740116162343800.0&plot.464881508912157184.1=619965277143480357.464881508912157184.1&plot.223571625677554027.2=619965277143480357.223571625677554027.2
- - trend http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gnu_embed_check_gcc/latest_runs_report
- - details http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gnu_embed_check_gcc/recent_activity
+ - arm http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gnu_embed_check_gcc/graph?plot.298740116162343800.0=1084008951837733723.298740116162343800.0&plot.464881508912157184.1=1084008951837733723.464881508912157184.1&plot.223571625677554027.2=1084008951837733723.223571625677554027.2
+ - arm_v7a_softfp http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gnu_embed_check_gcc/graph?plot.298740116162343800.0=599298826405724921.298740116162343800.0&plot.464881508912157184.1=599298826405724921.464881508912157184.1&plot.223571625677554027.2=599298826405724921.223571625677554027.2
+ - thumb_m0 http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gnu_embed_check_gcc/graph?plot.298740116162343800.0=342534359769205202.298740116162343800.0&plot.464881508912157184.1=342534359769205202.464881508912157184.1&plot.223571625677554027.2=342534359769205202.223571625677554027.2
+ - thumb_m23 http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gnu_embed_check_gcc/graph?plot.298740116162343800.0=564955760422315397.298740116162343800.0&plot.464881508912157184.1=564955760422315397.464881508912157184.1&plot.223571625677554027.2=564955760422315397.223571625677554027.2
+ - thumb_m33 http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gnu_embed_check_gcc/graph?plot.298740116162343800.0=872535828462307163.298740116162343800.0&plot.464881508912157184.1=872535828462307163.464881508912157184.1&plot.223571625677554027.2=872535828462307163.223571625677554027.2
+ - thumb_m3 http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gnu_embed_check_gcc/graph?plot.298740116162343800.0=719846687264750394.298740116162343800.0&plot.464881508912157184.1=719846687264750394.464881508912157184.1&plot.223571625677554027.2=719846687264750394.223571625677554027.2
+ - thumb_m55_hard http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gnu_embed_check_gcc/graph?plot.298740116162343800.0=399934044803555727.298740116162343800.0&plot.464881508912157184.1=399934044803555727.464881508912157184.1&plot.223571625677554027.2=399934044803555727.223571625677554027.2
+ - thumb_m7 http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gnu_embed_check_gcc/graph?plot.298740116162343800.0=789887171421761561.298740116162343800.0&plot.464881508912157184.1=789887171421761561.464881508912157184.1&plot.223571625677554027.2=789887171421761561.223571625677554027.2
+ - thumb_v8a_hard http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gnu_embed_check_gcc/graph?plot.298740116162343800.0=619965277143480357.298740116162343800.0&plot.464881508912157184.1=619965277143480357.464881508912157184.1&plot.223571625677554027.2=619965277143480357.223571625677554027.2
+ - trend http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gnu_embed_check_gcc/latest_runs_report
+ - details http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gnu_embed_check_gcc/recent_activity
gdb:
- - aarch64 http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gdb_check/graph?plot.298740116162343800.0=231404492126674122.298740116162343800.0&plot.464881508912157184.1=231404492126674122.464881508912157184.1&plot.223571625677554027.2=231404492126674122.223571625677554027.2
- - arm http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gdb_check/graph?plot.298740116162343800.0=1000400360521891559.298740116162343800.0&plot.464881508912157184.1=1000400360521891559.464881508912157184.1&plot.223571625677554027.2=1000400360521891559.223571625677554027.2
- - trend http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gdb_check/latest_runs_report
- - details http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_gdb_check/recent_activity
+ - aarch64 http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gdb_check/graph?plot.298740116162343800.0=231404492126674122.298740116162343800.0&plot.464881508912157184.1=231404492126674122.464881508912157184.1&plot.223571625677554027.2=231404492126674122.223571625677554027.2
+ - arm http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gdb_check/graph?plot.298740116162343800.0=1000400360521891559.298740116162343800.0&plot.464881508912157184.1=1000400360521891559.464881508912157184.1&plot.223571625677554027.2=1000400360521891559.223571625677554027.2
+ - trend http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gdb_check/latest_runs_report
+ - details http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_gdb_check/recent_activity
glibc:
- - aarch64 http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_glibc_check/graph?plot.298740116162343800.0=231404492126674122.298740116162343800.0&plot.464881508912157184.1=231404492126674122.464881508912157184.1&plot.223571625677554027.2=231404492126674122.223571625677554027.2
- - arm http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_glibc_check/graph?plot.298740116162343800.0=1000400360521891559.298740116162343800.0&plot.464881508912157184.1=1000400360521891559.464881508912157184.1&plot.223571625677554027.2=1000400360521891559.223571625677554027.2
- - trend http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_glibc_check/latest_runs_report
- - details http://llvm.validation.linaro.org:38500/db_default/v4/tcwg_glibc_check/recent_activity
+ - aarch64 http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_glibc_check/graph?plot.298740116162343800.0=231404492126674122.298740116162343800.0&plot.464881508912157184.1=231404492126674122.464881508912157184.1&plot.223571625677554027.2=231404492126674122.223571625677554027.2
+ - arm http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_glibc_check/graph?plot.298740116162343800.0=1000400360521891559.298740116162343800.0&plot.464881508912157184.1=1000400360521891559.464881508912157184.1&plot.223571625677554027.2=1000400360521891559.223571625677554027.2
+ - trend http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_glibc_check/latest_runs_report
+ - details http://llvm.validation.linaro.org:8082/db_default/v4/tcwg_glibc_check/recent_activity
all projects:
- - list http://llvm.validation.linaro.org:38500/
+ - list http://llvm.validation.linaro.org:8082/
diff --git a/jenkins-helpers.sh b/jenkins-helpers.sh
index 3e5ad7cd..c6e23431 100644
--- a/jenkins-helpers.sh
+++ b/jenkins-helpers.sh
@@ -1289,6 +1289,9 @@ breakup_changed_components ()
# fetches of ${paths[@]}" from appropriate revisions.
# Once one of the paths is found in a given revision, we check it out and
# move on to the next revision.
+# Optional "--relative" option supplied as $3 will make get_git_history()
+# output path names relative to the output directory. This is useful when
+# output directory needs to be moved before processing.
get_git_history ()
{
(
@@ -1298,6 +1301,12 @@ get_git_history ()
local repo="$2"
shift 2
+ local relative=false
+ if [ "$1" = "--relative" ]; then
+ relative=true
+ shift 1
+ fi
+
local -a paths=()
while [ $# != 0 ]; do
if [ "$1" = "--" ]; then
@@ -1348,14 +1357,13 @@ get_git_history ()
echo "$tmp_root"
while read rev; do
- local tmp_dir found path
- tmp_dir="$tmp_root/$rev"
- mkdir "$tmp_dir"
+ local found path
+ mkdir "$tmp_root/$rev"
found=false
for path in "${paths[@]}"; do
"${git_archive[@]}" "$rev" -- "$path" "${extra_paths[@]}" \
- | tar -x -C "$tmp_dir" &
+ | tar -x -C "$tmp_root/$rev" &
# "git archive" fails when $path was deleted in $rev.
if wait $!; then
found=true
@@ -1364,13 +1372,18 @@ get_git_history ()
done
if $found; then
- echo "$tmp_dir/$path"
+ if $relative; then
+ echo "$rev/$path"
+ else
+ echo "$tmp_root/$rev/$path"
+ fi
n_revs=$(($n_revs-1))
if [ $n_revs = 0 ]; then
break
fi
else
- rm -r "$tmp_dir"
+ # shellcheck disable=SC2115
+ rm -r "$tmp_root/$rev"
fi
done < <("${git_rev_list[@]}")
)
diff --git a/round-robin-baseline.sh b/round-robin-baseline.sh
index 740ec514..a0d4dfe2 100755
--- a/round-robin-baseline.sh
+++ b/round-robin-baseline.sh
@@ -319,8 +319,14 @@ rewrite_single_revision ()
fi
if [ $res != 0 ]; then
+ # check_regression() can fail for ${old[update_baseline]}=="onsuccess"
+ # builds, and, in rare cases for ${old[update_baseline]}=="force"
+ # builds. So far we have encountered a case when "forced" entry
+ # fails due to corrupted data, which we happened to accept in the past.
+ # In this case we get $EXTERNAL_FAIL as the exit code.
assert_with_msg "check_regression() failed on forced update_baseline" \
- [ "${old[update_baseline]}" = "onsuccess" ]
+ [ "${old[update_baseline]}" = "onsuccess" \
+ -o "$res" = "$EXTERNAL_FAIL" ]
if [ "${rr[major]-0}" -gt "${old[major]}" ]; then
# $build_script [somewhat expectedly] failed to process old results,
@@ -536,6 +542,9 @@ if $commit_artifacts; then
update_baseline
fi
+# make sure base-artifact repository is clean to continue
+git -C base-artifacts reset --hard
+
# Compute the maximum of revisions that we accept to remove. If we remove
# more than we expected. This is suspicious, stop the rewriting process
declare nb_revs nb_removed_revs
@@ -587,7 +596,8 @@ while true; do
echo -e "${BUILD_URL-}\nWARNING: failed rewriting base-artifacts" \
>> artifacts/jenkins/error-mail-body.txt
fi
- break
+ # If fail happens during a rewrite, we consider it as an internal_fail
+ exit $INTERNAL_FAIL
fi
if [ -f "${rr[top_artifacts]}/99-rewrite/more" ]; then
@@ -603,7 +613,8 @@ while true; do
echo -e "${BUILD_URL-}\nWARNING: Too many revisions removed while "\
"rewriting base-artifacts" >> artifacts/jenkins/error-mail-body.txt
fi
- break
+ # If fail happens during a rewrite, we consider it as an internal_fail
+ exit $INTERNAL_FAIL
fi
# Push current version and search for another revision to update.
diff --git a/round-robin.sh b/round-robin.sh
index f7fb019d..06eceae1 100644
--- a/round-robin.sh
+++ b/round-robin.sh
@@ -147,6 +147,14 @@ reset_artifacts ()
# the command line, so that get_baseline_git() is not called.
mkdir base-artifacts/git
fi
+
+ # We need rr[major], rr[minor], and rr[baseline_branch] in round-robin-baseline.sh
+ # when rewriting history, which happens right after reset_artifacts()/run-manifest-start.
+ cat <<EOF | manifest_out
+rr[baseline_branch]="${rr[baseline_branch]}"
+rr[major]="${rr[major]}"
+rr[minor]="${rr[minor]}"
+EOF
)
}
@@ -479,17 +487,26 @@ build_abe ()
"--flaky-failures" "$flaky_tests"
"--expected-failures" "$baseline_fails")
- if [ "${rr[update_baseline]}" != "ignore" ]; then
+ if [ "${rr[update_baseline]}" = "onsuccess" ]; then
# If we have a chance to commit $new_flaky into base-artifacts.git
- # then pretend it is 8 weeks into the future and ignore flaky entries
- # that will be expired by then. This, effectively, gives us 8 weeks
- # to re-detect/confirm flaky tests without no_regression_p()
- # noticing anything.
+ # then pretend it is 8 weeks into the future and ignore flaky
+ # entries that will be expired by then. This, effectively, gives
+ # us 8 weeks to re-detect/confirm flaky tests without
+ # no_regression_p() noticing anything.
# We will then set expiration date to "now+12 weeks" (see below)
# for entries in $new_flaky/"sumfiles/flaky.xfail".
- local week_from_now
- week_from_now=$(date -d "now+8 weeks" +%Y%m%d)
- rerun_failed_tests+=("--failures-expiration-date" "$week_from_now")
+ local weeks_from_now
+ weeks_from_now=$(date -d "now+8 weeks" +%Y%m%d)
+ rerun_failed_tests+=("--failures-expiration-date" "$weeks_from_now")
+ elif [ "${rr[update_baseline]}" = "force" ]; then
+ # If we know that we will commit $new_flaky into base-artifacts.git,
+ # then ignore known flaky entries to try and detect as many
+ # flaky tests as possible. "Forced" history entries will remain
+ # in base-artifacts more-or-less forever, while "onsuccess" entries
+ # are eventually discarded to keep history size reasonable.
+ # For "update_baseline==init" we have this behavior naturally,
+ # since there is no history to pull flaky entries from.
+ echo "# Ignoring known flaky entries" > "$flaky_tests"
fi
case "${rr[ci_project]}" in
diff --git a/start-container-docker.sh b/start-container-docker.sh
index 0b1560a2..fcde843f 100755
--- a/start-container-docker.sh
+++ b/start-container-docker.sh
@@ -376,7 +376,7 @@ for mount in "${mounts[@]}"; do
# - ccache-* for task==build.
src=$(echo "$mount" | cut -s -d: -f 1)
assert_with_msg "Non-readonly mount for precommit task" \
- [ "$task" != "precommit" ]
+ [ "$task" != "precommit" -o "$wsl" = "true" ]
else
# This is a read-write scratch mount, e.g.,
# - $WORKSPACE for task==precommit.
diff --git a/tcwg-lnt/create-server.sh b/tcwg-lnt/create-server.sh
index ea58bf27..86b7a5a7 100755
--- a/tcwg-lnt/create-server.sh
+++ b/tcwg-lnt/create-server.sh
@@ -18,14 +18,11 @@ lnt_repo_branch=${lnt_repo_branch?}
lnt_root_dir="${lnt_root_dir-$PWD/$config_name/lntserver/}"
echo "[$config_name] server name is : ${lnt_server_name?}"
-echo "[$config_name] server port is : ${lnt_server_port?}"
echo "[$config_name] lnt repository : ${lnt_repo_url?}"
echo "[$config_name] lnt branch : ${lnt_repo_url?}"
echo "[$config_name] local root_dir : ${lnt_root_dir}"
# shellcheck disable=SC2154
-echo "[$config_name] check projects : ${check_configs[*]}"
-# shellcheck disable=SC2154
-echo "[$config_name] bmk projects : ${bmk_configs[*]}"
+echo "[$config_name] lnt projects : ${!lnt_projects[*]}"
# ####################################################################
#
@@ -103,12 +100,8 @@ generate_schema()
tmp_schemas=$(mktemp -d)
-for config in "${bmk_configs[@]}"; do
- generate_schema tcwg_bmk "$config" "$tmp_schemas"
-done
-
-for config in "${check_configs[@]}"; do
- generate_schema tcwg_check "$config" "$tmp_schemas"
+for project in "${!lnt_projects[@]}"; do
+ generate_schema "${lnt_projects[$project]}" "$project" "$tmp_schemas"
done
if [ -d "$lnt_db_dir" ]; then
@@ -140,20 +133,9 @@ rm -rf "$tmp_schemas"
# run the LNT server
# only one server on the machine for now
-pkill --echo --full "lnt runserver .* --port $lnt_server_port" || true
-
-lnt runserver \
- "$lnt_db_dir" \
- --hostname 0.0.0.0 \
- --port $lnt_server_port \
- --processes 4 \
- &
-
-
-# ####################################################################
-
-exit 0
+pkill --echo --full "lnt runserver .* --port 80" || true
+exec lnt runserver "$lnt_db_dir" --hostname 0.0.0.0 --port 80 --processes 4
# ####################################################################
diff --git a/tcwg-lnt/tcwg-lnt-01/config b/tcwg-lnt/tcwg-lnt-01/config
index 5185994f..4c0ada62 100644
--- a/tcwg-lnt/tcwg-lnt-01/config
+++ b/tcwg-lnt/tcwg-lnt-01/config
@@ -1,40 +1,38 @@
-lnt_server_port=38000
+#!/bin/bash
+
lnt_server_name="LNT-TCWG (all projects)"
lnt_repo_branch="linaro-local/master"
-check_configs=(
- tcwg_binutils_check
- tcwg_bootstrap_check
- tcwg_gcc_check
- tcwg_gdb_check
- tcwg_glibc_check
- tcwg_gnu_cross_check_binutils
- tcwg_gnu_cross_check_gcc
- tcwg_gnu_embed_check_binutils
- tcwg_gnu_embed_check_gcc
- tcwg_gnu_mingw_check_binutils
- tcwg_gnu_mingw_check_gcc
- tcwg_gnu_native_check_binutils
- tcwg_gnu_native_check_gcc
- tcwg_gnu_native_check_gdb
- tcwg_gnu_native_check_glibc
- tcwg_gnu_native_fast_check_gcc
- tcwg_gnu_native_fast_check_gdb
-)
+declare -A lnt_projects=(
+ [tcwg_binutils_check]=tcwg_check
+ [tcwg_bootstrap_check]=tcwg_check
+ [tcwg_gcc_check]=tcwg_check
+ [tcwg_gdb_check]=tcwg_check
+ [tcwg_glibc_check]=tcwg_check
+ [tcwg_gnu_cross_check_binutils]=tcwg_check
+ [tcwg_gnu_cross_check_gcc]=tcwg_check
+ [tcwg_gnu_embed_check_binutils]=tcwg_check
+ [tcwg_gnu_embed_check_gcc]=tcwg_check
+ [tcwg_gnu_mingw_check_binutils]=tcwg_check
+ [tcwg_gnu_mingw_check_gcc]=tcwg_check
+ [tcwg_gnu_native_check_binutils]=tcwg_check
+ [tcwg_gnu_native_check_gcc]=tcwg_check
+ [tcwg_gnu_native_check_gdb]=tcwg_check
+ [tcwg_gnu_native_check_glibc]=tcwg_check
+ [tcwg_gnu_native_fast_check_gcc]=tcwg_check
+ [tcwg_gnu_native_fast_check_gdb]=tcwg_check
-bmk_configs=(
- tcwg_bmk-code_size-coremark
- tcwg_bmk-code_size-cpu2017fast
- tcwg_bmk-code_size-cpu2017rate
- tcwg_bmk-code_size-spec2k6
- tcwg_bmk-code_speed-coremark
- tcwg_bmk-code_speed-cpu2017rate
- tcwg_bmk-code_speed-cpu2017speed
- tcwg_bmk-code_speed-spec2k6
- tcwg_bmk-code_vect-cpu2017fast
- tcwg_bmk-code_vect-cpu2017rate
- tcwg_bmk-code_vect-spec2k6
- tcwg_bmk-fujitsu_speed-cpu2017speed
- tcwg_bmk-qc_speed-cpu2017rate
+ [tcwg_bmk-code_size-coremark]=tcwg_bmk
+ [tcwg_bmk-code_size-cpu2017fast]=tcwg_bmk
+ [tcwg_bmk-code_size-cpu2017rate]=tcwg_bmk
+ [tcwg_bmk-code_size-spec2k6]=tcwg_bmk
+ [tcwg_bmk-code_speed-coremark]=tcwg_bmk
+ [tcwg_bmk-code_speed-cpu2017rate]=tcwg_bmk
+ [tcwg_bmk-code_speed-cpu2017speed]=tcwg_bmk
+ [tcwg_bmk-code_speed-spec2k6]=tcwg_bmk
+ [tcwg_bmk-code_vect-cpu2017fast]=tcwg_bmk
+ [tcwg_bmk-code_vect-cpu2017rate]=tcwg_bmk
+ [tcwg_bmk-code_vect-spec2k6]=tcwg_bmk
+ [tcwg_bmk-fujitsu_speed-cpu2017speed]=tcwg_bmk
+ [tcwg_bmk-qc_speed-cpu2017rate]=tcwg_bmk
)
-
diff --git a/tcwg-lnt/tcwg-lnt-02/config b/tcwg-lnt/tcwg-lnt-02/config
index cd86c7d4..581736b6 100644
--- a/tcwg-lnt/tcwg-lnt-02/config
+++ b/tcwg-lnt/tcwg-lnt-02/config
@@ -1,27 +1,24 @@
-lnt_server_port=38500
+#!/bin/bash
+
lnt_server_name="LNT-TCWG (stable)"
lnt_repo_branch="linaro-local/master"
-check_configs=(
- tcwg_binutils_check
- tcwg_bootstrap_check
- tcwg_gcc_check
- tcwg_gdb_check
- tcwg_glibc_check
- tcwg_gnu_cross_check_binutils
- tcwg_gnu_cross_check_gcc
- tcwg_gnu_embed_check_binutils
- tcwg_gnu_embed_check_gcc
- tcwg_gnu_mingw_check_binutils
- tcwg_gnu_mingw_check_gcc
- tcwg_gnu_native_check_binutils
- tcwg_gnu_native_check_gcc
- tcwg_gnu_native_check_gdb
- tcwg_gnu_native_check_glibc
- tcwg_gnu_native_fast_check_gcc
- tcwg_gnu_native_fast_check_gdb
+declare -A lnt_projects=(
+ [tcwg_binutils_check]=tcwg_check
+ [tcwg_bootstrap_check]=tcwg_check
+ [tcwg_gcc_check]=tcwg_check
+ [tcwg_gdb_check]=tcwg_check
+ [tcwg_glibc_check]=tcwg_check
+ [tcwg_gnu_cross_check_binutils]=tcwg_check
+ [tcwg_gnu_cross_check_gcc]=tcwg_check
+ [tcwg_gnu_embed_check_binutils]=tcwg_check
+ [tcwg_gnu_embed_check_gcc]=tcwg_check
+ [tcwg_gnu_mingw_check_binutils]=tcwg_check
+ [tcwg_gnu_mingw_check_gcc]=tcwg_check
+ [tcwg_gnu_native_check_binutils]=tcwg_check
+ [tcwg_gnu_native_check_gcc]=tcwg_check
+ [tcwg_gnu_native_check_gdb]=tcwg_check
+ [tcwg_gnu_native_check_glibc]=tcwg_check
+ [tcwg_gnu_native_fast_check_gcc]=tcwg_check
+ [tcwg_gnu_native_fast_check_gdb]=tcwg_check
)
-
-# No bmk project in this server
-bmk_configs=()
-
diff --git a/tcwg-lnt/tcwg-lnt-03/config b/tcwg-lnt/tcwg-lnt-03/config
index 37f1795c..57a86b1a 100644
--- a/tcwg-lnt/tcwg-lnt-03/config
+++ b/tcwg-lnt/tcwg-lnt-03/config
@@ -1,40 +1,39 @@
-lnt_server_port=38240
+#!/bin/bash
+
lnt_server_name="LNT-TCWG (experimental)"
lnt_repo_branch="linaro-local/experimental"
-check_configs=(
- tcwg_binutils_check
- tcwg_bootstrap_check
- tcwg_gcc_check
- tcwg_gdb_check
- tcwg_glibc_check
- tcwg_gnu_cross_check_binutils
- tcwg_gnu_cross_check_gcc
- tcwg_gnu_embed_check_binutils
- tcwg_gnu_embed_check_gcc
- tcwg_gnu_mingw_check_binutils
- tcwg_gnu_mingw_check_gcc
- tcwg_gnu_native_check_binutils
- tcwg_gnu_native_check_gcc
- tcwg_gnu_native_check_gdb
- tcwg_gnu_native_check_glibc
- tcwg_gnu_native_fast_check_gcc
- tcwg_gnu_native_fast_check_gdb
-)
+declare -A lnt_projects=(
+ [tcwg_binutils_check]=tcwg_check
+ [tcwg_bootstrap_check]=tcwg_check
+ [tcwg_gcc_check]=tcwg_check
+ [tcwg_gdb_check]=tcwg_check
+ [tcwg_glibc_check]=tcwg_check
+ [tcwg_gnu_cross_check_binutils]=tcwg_check
+ [tcwg_gnu_cross_check_gcc]=tcwg_check
+ [tcwg_gnu_embed_check_binutils]=tcwg_check
+ [tcwg_gnu_embed_check_gcc]=tcwg_check
+ [tcwg_gnu_mingw_check_binutils]=tcwg_check
+ [tcwg_gnu_mingw_check_gcc]=tcwg_check
+ [tcwg_gnu_native_check_binutils]=tcwg_check
+ [tcwg_gnu_native_check_gcc]=tcwg_check
+ [tcwg_gnu_native_check_gdb]=tcwg_check
+ [tcwg_gnu_native_check_glibc]=tcwg_check
+ [tcwg_gnu_native_fast_check_gcc]=tcwg_check
+ [tcwg_gnu_native_fast_check_gdb]=tcwg_check
-bmk_configs=(
- tcwg_bmk-code_size-coremark
- tcwg_bmk-code_size-cpu2017fast
- tcwg_bmk-code_size-cpu2017rate
- tcwg_bmk-code_size-spec2k6
- tcwg_bmk-code_speed-coremark
- tcwg_bmk-code_speed-cpu2017rate
- tcwg_bmk-code_speed-cpu2017speed
- tcwg_bmk-code_speed-spec2k6
- tcwg_bmk-code_vect-cpu2017fast
- tcwg_bmk-code_vect-cpu2017rate
- tcwg_bmk-code_vect-spec2k6
- tcwg_bmk-fujitsu_speed-cpu2017speed
- tcwg_bmk-qc_speed-cpu2017rate
+ [tcwg_bmk-code_size-coremark]=tcwg_bmk
+ [tcwg_bmk-code_size-cpu2017fast]=tcwg_bmk
+ [tcwg_bmk-code_size-cpu2017rate]=tcwg_bmk
+ [tcwg_bmk-code_size-spec2k6]=tcwg_bmk
+ [tcwg_bmk-code_speed-coremark]=tcwg_bmk
+ [tcwg_bmk-code_speed-cpu2017rate]=tcwg_bmk
+ [tcwg_bmk-code_speed-cpu2017speed]=tcwg_bmk
+ [tcwg_bmk-code_speed-spec2k6]=tcwg_bmk
+ [tcwg_bmk-code_vect-cpu2017fast]=tcwg_bmk
+ [tcwg_bmk-code_vect-cpu2017rate]=tcwg_bmk
+ [tcwg_bmk-code_vect-spec2k6]=tcwg_bmk
+ [tcwg_bmk-fujitsu_speed-cpu2017speed]=tcwg_bmk
+ [tcwg_bmk-qc_speed-cpu2017rate]=tcwg_bmk
)
diff --git a/tcwg-report-stale-rr-jobs.sh b/tcwg-report-stale-rr-jobs.sh
index bd077c46..e4a120ea 100755
--- a/tcwg-report-stale-rr-jobs.sh
+++ b/tcwg-report-stale-rr-jobs.sh
@@ -12,7 +12,7 @@ days="${days-10}"
human="${human-true}"
output="${output-/dev/null}"
refs_prefix="${refs_prefix-refs/heads/linaro-local/ci/}"
-refs_bkp_url_prefix="${refs_bkp_url_prefix-ssh://bkp.tcwglab/home/tcwg-buildslave}"
+refs_bkp_url_prefix="${refs_bkp_url_prefix-ssh://tcwg-buildslave@bkp.tcwglab/home/tcwg-buildslave}"
repos=("${repos[@]-default}")
verbose="${verbose-false}"
classify="${classify-false}"
@@ -29,34 +29,35 @@ fi
# tested in the component, and the starting date of the jenkins test
declare -A delay_per_component=([binutils]=0 [gcc]=0 [glibc]=0 [llvm]=0 [linux]=8 [qemu]=0)
-process_base_artifacts ()
+report_not_updated_component ()
{
(
set -euf -o pipefail
- local baseartifacts_url="$1"
- local days_limit=$days
+ echo -e "\n### Reporting component not updated recently\n" |& tee -a $output
- while read -r ref; do
+ # process all unitary base-artifacts/<ci_project>/<ci_config>
+ local ci_project_config
+ idx_remote=0
+ while read -r ci_project_config; do
+
+ local baseartifacts_url="$refs_bkp_url_prefix/base-artifacts/$ci_project_config.git"
+ local repo_url_dash_branch="$baseartifacts_url#linaro-local/ci/$ci_project_config"
+ local days_limit=$days
- local ci_project_config="${ref#refs/heads/linaro-local/ci/}"
- local remote_project_config="${ci_project_config/\//--}"
- local dst_ref="refs/remotes/$remote_project_config/linaro-local/ci/$ci_project_config"
+ idx_remote=$((idx_remote+1))
+ verbose -en "# Processing base-artifacts no. $idx_remote\r"
if [ $only != false ] && [[ ! $ci_project_config =~ $only ]]; then
continue
fi
- # -- get the studied base-artifact branch
- if ! [ "$(git -C "base-artifacts" remote get-url $remote_project_config 2> /dev/null)" ]; then
- git -C "base-artifacts" remote add $remote_project_config $baseartifacts_url
- git -C "base-artifacts" fetch -q "$baseartifacts_url" "+$ref:$dst_ref" 2> /dev/null
- fi
- git -C "base-artifacts" checkout -q $dst_ref
-
# -- get components for this project
local components
- components="$(get_baseline_manifest "{rr[components]}")"
+ readarray -t manifests < <(get_git_history 1 $repo_url_dash_branch manifest.sh)
+ [ ${#manifests[@]} == 2 ] || continue
+ components="$(get_manifest "${manifests[1]}" "{rr[components]}")"
+ rm -rf "${manifests[0]}"
# -- check last update of that component
declare -A commit_stamps
@@ -65,13 +66,13 @@ process_base_artifacts ()
local tmproot="" last_changed_sha1=""
local -a git_history
- readarray -t git_history < <(get_git_history 1 base-artifacts "git/${c}_rev")
+ readarray -t git_history < <(get_git_history 1 $repo_url_dash_branch "git/${c}_rev")
tmproot=${git_history[0]}
if [ ${#git_history[@]} == 2 ]; then
last_changed_sha1=${git_history[1]}
last_changed_sha1="${last_changed_sha1#$tmproot/}"
last_changed_sha1="${last_changed_sha1%/git/${c}_rev}"
- commit_stamps[$c]="$(git -C base-artifacts show --no-patch --pretty='%ct' $last_changed_sha1)"
+ commit_stamps[$c]="$(date -r "${git_history[1]}" "+%s")"
fi
rm -rf "$tmproot"
done
@@ -86,9 +87,13 @@ process_base_artifacts ()
else
echo "$c: $ci_project_config: no date for this component" |& tee -a $output
fi
- done
+ done
+
- done < <(git ls-remote "$baseartifacts_url" "${refs_prefix}*" | cut -f2)
+ done < <(ssh bkp.tcwglab 'cd /home/tcwg-buildslave/base-artifacts/; find . -type d -name "*.git"' | \
+ sed -e 's/.git$//' | cut -d/ -f2-3)
+
+ verbose -en "# Processed $idx_remote base-artifacts\n"
)
}
@@ -97,48 +102,32 @@ report_old_backup_branches ()
(
set -euf -o pipefail
+ echo -e "\n### Reporting useless backup branches\n" |& tee -a $output
+
local ci_project_config
while read -r ci_project_config; do
- # get the branches of this $ci_project_config git repository
- baseartifacts_url="$refs_bkp_url_prefix/base-artifacts/$ci_project_config.git"
+ if [ $only != false ] && [[ ! $ci_project_config =~ $only ]]; then
+ continue
+ fi
- readarray -t git_branches < <(git -C base-artifacts ls-remote \
- "$baseartifacts_url"|cut -f2)
+ # get the branches of this $ci_project_config git repository
+ local baseartifacts_url="$refs_bkp_url_prefix/base-artifacts/$ci_project_config.git"
+ local repo_url_dash_branch="$baseartifacts_url#linaro-local/ci/$ci_project_config"
- # retrieve the manifest of current branch to have minor/major vars
- git -C base-artifacts checkout FETCH_HEAD -- manifest.sh
- cur_major=$(("$(get_baseline_manifest "{rr[major]}")"))
- cur_minor=$(("$(get_baseline_manifest "{rr[minor]}")"))
+ readarray -t git_branches < <(git ls-remote "$baseartifacts_url"|cut -f2|sort -r)
- for br in "${git_branches[@]}"; do
+ verbose "# $ci_project_config: ${git_branches[0]} : branch kept"
+ for br in "${git_branches[@]:1}"; do
if [[ $br =~ refs/heads/linaro-local/ci/.* ]]; then
continue
elif [[ $br =~ refs/heads/linaro-local/v.*_to_v.*-.*/.* ]]; then
- br_revs=$(echo $br | \
- sed -e 's|refs/heads/linaro-local/v.*_to_v\([0-9\.]*\)-.*/.*|\1|')
- br_major=$(echo $br_revs | cut -d. -f1)
- br_minor=$(echo $br_revs | cut -d. -f2)
-
- if [ "$cur_major" -eq "$br_major" ] \
- && [ "$cur_minor" -eq "$br_minor" ]; then
- # Nothing to report. This is the last backup branch.
- true
- elif [ "$cur_major" -gt "$br_major" ] \
- || { [ "$cur_major" -eq "$br_major" ] \
- && [ "$cur_minor" -gt "$br_minor" ]; }; then
- echo "BRANCH $br : Too old. (v$br_major.$br_minor < v$cur_major.$cur_minor)"
- elif [ "$cur_major" -lt "$br_major" ] \
- || { [ "$cur_major" -eq "$br_major" ] \
- && [ "$cur_minor" -lt "$br_minor" ]; }; then
- echo "BRANCH $br : In advance (v$br_major.$br_minor > v$cur_major.$cur_minor)"
- else
- assert_with_msg "Internal error for branch $br" false
- fi
+ echo "$ci_project_config: $br : to be removed" |& tee -a $output
+
else
- echo "BRANCH $br : Strangely formed"
+ verbose "# $ci_project_config: $br : strangely formed"
fi
done
@@ -152,58 +141,14 @@ process_all_base_artifacts ()
(
set -euf -o pipefail
- # -- Initialize base-artifacts repo (by cloning its "empty" branch).
- # FIXME: We need to add handling of /home/shared/git/base-artifacts to
- # tcwg-generate-source-cache.sh .
- clone_or_update_repo "base-artifacts" empty \
- "$refs_bkp_url_prefix/base-artifacts/empty.git" auto empty
- git -C "base-artifacts" reset -q --hard
-
# -- Fetching all remotes
- local nb_remote idx_remote
- echo "# Fetching all"
- git -C "base-artifacts" fetch --all 2> /dev/null
- nb_remote=$(git -C "base-artifacts" remote |wc -l)
+ local idx_remote
# -- Process every components dates
- echo "# Reporting component not updated recently"
-
- # process all unitary base-artifacts/<ci_project>/<ci_config>
- local ci_project_config
- idx_remote=0
- while read -r ci_project_config; do
-
- idx_remote=$((idx_remote+1))
- verbose -en "# Processing base-artifacts $idx_remote / $nb_remote\r"
-
- process_base_artifacts "$refs_bkp_url_prefix/base-artifacts/$ci_project_config.git"
-
- done < <(ssh bkp.tcwglab 'cd /home/tcwg-buildslave/base-artifacts/; find . -type d -name "*.git"' | \
- sed -e 's/.git$//' | cut -d/ -f2-3)
+ report_not_updated_component
# -- Check for old branches
- echo "# Reporting useless backup branches"
report_old_backup_branches
-
- # -- clean local repository
- # Clean up the clone (this is supposed to re-share objects from
- # reference clone and keep the size of the clone minimal).
- # It's possible that previous GC process was interrupted and left
- # a lock. Use --force to workaround that. It should be safe
- # to override the lock since directories should not be shared
- # between concurrent builds.
- #
- # Also, prune all loose objects to avoid "git gc --auto" failing
- # and creating .git/gc.log to warn us.
- rm -f "base-artifacts/.git/gc.log"
- # Do not detach into background for GC. Running in the background may
- # cause a failure during bisect's rsync, which may see some of
- # the files disappering mid-rsync.
- git -C "base-artifacts" config gc.autoDetach false
- git -C "base-artifacts" gc --auto --force --prune=all
- # Delete stale locks -- especially .git/refs/remotes/REMOTE/BRANCH.lock
- # These occur when builds are aborted during "git remote update" or similar.
- find "base-artifacts/.git" -name "*.lock" -delete
)
}
@@ -407,7 +352,7 @@ classify_project_disabled ()
{
if [ ! -z "${test['diag']}" ]; then return; fi
verbose " - classify_project_disabled()"
- classify grep __toppage__ "Project DELETE ME" "ERROR (project disabled)"
+ classify grep __toppage__ "This project is currently disabled" "ERROR (project disabled)"
}
classify_gcc_boostrap_timeout ()
{
@@ -527,19 +472,25 @@ classify_no_change_in_sources ()
################## PRINT SUGGESTIONS
print_suggestions ()
{
- local gitbase="ssh://git.linaro.org/toolchain/ci"
-
- if [ ${#list_err_noproject[@]} -ne 0 ]; then
- echo "1) For deleted projects you may want to DELETE the stored results branches:" |& tee -a $output
- tmpdir=/tmp/empty_git
- echo "mkdir -p $tmpdir && cd $tmpdir && git init" |& tee -a $output
- echo "git push $gitbase/base-artifacts.git \\" |& tee -a $output
- for br in "${list_err_noproject[@]}"; do
- echo " --delete refs/heads/linaro-local/ci/$br \\" |& tee -a $output
- done
- echo "" |& tee -a $output
- echo "rm -rf $tmpdir" |& tee -a $output
- fi
+ local stale_jobs_file="$1"
+
+ useless_backup_branches=false
+ while read -r line; do
+ if [[ "$line" =~ 'useless backup branches' ]]; then
+ echo "1) To delete the useless backup branches:" |& tee -a $output
+ useless_backup_branches=true
+ fi
+ if $useless_backup_branches; then
+ if [[ "$line" =~ 'to be removed' ]]; then
+ local ci_project_config branch
+ ci_project_config=$(echo $line | cut -f: -f1)
+ branch=$(echo $line | cut -f: -f2)
+ echo "git -C /home/tcwg-buildslave/base-artifacts/$ci_project_config.git branch -D $branch" |& tee -a $output
+ elif [[ "$line" =~ 'branch kept' ]]; then
+ echo "$line" |& tee -a $output
+ fi
+ fi
+ done < $stale_jobs_file
}
################## MAIN CLASSIFY FUNCTIONS
@@ -562,6 +513,13 @@ classify_failures ()
while read -r line;
do
+ if [ "$line" = "" ] || [[ "$line" =~ 'not updated recently' ]]; then
+ continue
+ fi
+ if [[ "$line" =~ 'useless backup branches' ]]; then
+ break
+ fi
+
classify_get_project "$line"
if [ $only != false ] && [[ ! ${test['jkproject']} =~ $only ]]; then
@@ -600,7 +558,7 @@ classify_failures ()
printf " %-28s : %-3s\n" "TOTAL FAILURES" "$count_all" |& tee -a $output
printf "====================================================================================================================================================================\n" |& tee -a $output
printf "SUGGESTIONS : \n" |& tee -a $output
- print_suggestions
+ print_suggestions $stale_jobs_file
printf "====================================================================================================================================================================\n" |& tee -a $output
printf "\n" |& tee -a $output
diff --git a/tcwg-start-container.sh b/tcwg-start-container.sh
index 00271b06..d1e35c6d 100755
--- a/tcwg-start-container.sh
+++ b/tcwg-start-container.sh
@@ -11,7 +11,7 @@ obligatory_variables container image
declare container image
dryrun="${dryrun-false}"
-keep_existing="${keep_existing-true}"
+keep_existing="${keep_existing-keep_if_same_image}"
verbose="${verbose-true}"
additional_options="${additional_options-}"
test_docker="${test_docker-false}"
diff --git a/tcwg-update-lnt-results.sh b/tcwg-update-lnt-results.sh
index 56119a76..4f7a83f1 100755
--- a/tcwg-update-lnt-results.sh
+++ b/tcwg-update-lnt-results.sh
@@ -18,8 +18,9 @@ verbose="${verbose-false}"
gitbaseurl="ssh://bkp.tcwglab/home/tcwg-buildslave/base-artifacts"
lntserver="${lntserver-/home/tcwg-buildslave/$lnt_config/lntserver}"
lntdb="$lntserver/lnt-database"
+lntimport="$lntserver/import-tmp"
-. $lntserver/sandbox/bin/activate
+docker_lnt=(docker exec "$lnt_config-lnt" sudo -i -u tcwg-buildslave lnt.sh)
if $verbose; then set -x; fi
@@ -27,31 +28,29 @@ if $verbose; then set -x; fi
declare -g tmpdirs=()
trap 'rm -rf "${tmpdirs[@]}"' EXIT
+# Get ${lnt_projects[@]}
+# shellcheck source=tcwg-lnt/tcwg-lnt-01/config
+. $scripts/tcwg-lnt/$lnt_config/config
+
update_one_lnt_results_project()
{
local project=$1
local config=$2
- # Early exit if unsupported
- case "$project" in
- tcwg_binutils*|tcwg_bootstrap*|tcwg_gcc*|tcwg_gdb*|tcwg_glibc*|tcwg_gnu*)
- lnt_model="tcwg_check"
- ;;
- tcwg_bmk*)
- lnt_model="tcwg_bmk"
- ;;
- *)
- # Do not update anything else so far
- return
- ;;
- esac
+ local lnt_model="${lnt_projects[$project]-}"
+ if [ "$lnt_model" = "" ]; then
+ echo "Skipping unknown project: $project"
+ return 0
+ fi
# Update base-artifacts with project/config
branch="linaro-local/ci/$project/$config"
# push each one on LNT server
+ local -a lnt_reports=()
readarray -t lnt_reports < \
<(get_git_history -0 "$gitbaseurl/$project/$config.git#$branch" \
+ --relative \
notify/lnt_report.json -- manifest.sh)
# get_git_history always returns a first line with the created tmpdir, and each
@@ -67,14 +66,14 @@ update_one_lnt_results_project()
# whether we are in the middle of rewriting history. If "yes", then
# skip updating the dashboard to avoid inconsistent results.
local manifest
- manifest="$(dirname "$(dirname "${lnt_reports[1]}")")/manifest.sh"
+ manifest="$(dirname "$(dirname "${lnt_reports[0]}/${lnt_reports[1]}")")/manifest.sh"
local rr_major1 rr_minor1 i=1 rr_major2 rr_minor2
rr_major1=$(get_manifest "$manifest" "{rr[major]-0}")
rr_minor1=$(get_manifest "$manifest" "{rr[minor]-0}")
while [ $i != ${#lnt_reports[@]} ]; do
- json="${lnt_reports[$i]}"
- manifest="$(dirname "$(dirname "${lnt_reports[$i]}")")/manifest.sh"
+ json="${lnt_reports[0]}/${lnt_reports[$i]}"
+ manifest="$(dirname "$(dirname "${lnt_reports[0]}/${lnt_reports[$i]}")")/manifest.sh"
rr_major2=$(get_manifest "$manifest" "{rr[major]-0}")
rr_minor2=$(get_manifest "$manifest" "{rr[minor]-0}")
@@ -87,16 +86,25 @@ update_one_lnt_results_project()
jq -f $scripts/tcwg-lnt/$lnt_config/$lnt_model.jq $json > $json.tmp
mv $json.tmp $json
+ # Update the path to what it will be after rsync below.
+ lnt_reports[$i]="$lntimport/${lnt_reports[$i]}"
i=$((i + 1))
done
+ # Move data into $lntimport/ directory, which is shared with
+ # the LNT container.
+ rsync -a --del "${lnt_reports[0]}/" "$lntimport/"
+
echo "Deleting previous reports"
- lnt updatedb --testsuite "$project" "$lntdb" --delete-machine "$config"
+ # "Machine" $config may not exist, so ignore failures.
+ "${docker_lnt[@]}" updatedb --testsuite "$project" "$lntdb" \
+ --delete-machine "$config" || true
echo "Pushing ${lnt_reports[*]:1}"
# FIXME: ${lnt_reports[@]} can have hundreds of entries, which all
# will be expanded on the command line. Consider importing data in
# chunks or by specifying a top-level directory.
- lnt import --testsuite "$project" $lntdb "${lnt_reports[@]:1}"
+ "${docker_lnt[@]}" import --testsuite "$project" "$lntdb" \
+ "${lnt_reports[@]:1}"
echo "Done!"
rm -rf "${lnt_reports[0]}"
diff --git a/tcwg_aosp-build.sh b/tcwg_aosp-build.sh
index 363daf48..06556823 100755
--- a/tcwg_aosp-build.sh
+++ b/tcwg_aosp-build.sh
@@ -41,6 +41,10 @@ for c in ${rr[components]}; do
rr[${c}_git]=${rr[${c}_git]-baseline}
done
+# Artifacts version
+rr[major]=4
+rr[minor]=0
+
start_at="${start_at-default}"
finish_at="${finish_at-default}"
verbose="${verbose-true}"
diff --git a/tcwg_bmk-build.sh b/tcwg_bmk-build.sh
index 779acb06..5a6bb1dd 100755
--- a/tcwg_bmk-build.sh
+++ b/tcwg_bmk-build.sh
@@ -150,8 +150,16 @@ if [ x"$finish_at" = x"default" ]; then
finish_at="$default_finish_at"
fi
-rr[major]=2
-rr[minor]=3
+case "${rr[ci_project]}" in
+ tcwg_bmk-code_speed-cpu2017rate)
+ rr[major]=3
+ rr[minor]=0
+ ;;
+ *)
+ rr[major]=2
+ rr[minor]=3
+ ;;
+esac
run_step_init "$start_at" "$finish_at" "${rr[top_artifacts]}" "$verbose"
@@ -373,6 +381,12 @@ no_regression_p ()
assert_with_msg "Benchmarking succeeded, but no annex/bmk-data results" \
[ -d "$new_results" ]
+ # Get the baseline results if necessary :
+ # Already done by reset-artifacts, but this might have been affected if a
+ # rewrite happened between reset-artifacts and the rest. Which is the case
+ # when running from a Jenkins project.
+ git_annex_download base-artifacts annex
+
if ! [ -d "$ref_results" ]; then
# base-artifacts has no reference results.
# This can happen on init build (update_baseline=init).
diff --git a/tcwg_chromium-build.sh b/tcwg_chromium-build.sh
index 8294a693..81bc5480 100755
--- a/tcwg_chromium-build.sh
+++ b/tcwg_chromium-build.sh
@@ -20,6 +20,10 @@ declare -A rr
# Execution mode: build or bisect
rr[mode]="${rr[mode]-build}"
+# mandatory major/minor fields
+rr[major]=1
+rr[minor]=0
+
# Set custom revision for one of the projects, and use baseline revisions
# for all other projects.
rr[baseline_branch]="${rr[baseline_branch]-linaro-local/ci/${rr[ci_project]}/${rr[ci_config]}}"
@@ -27,11 +31,15 @@ rr[update_baseline]="${rr[update_baseline]-ignore}"
rr[top_artifacts]="${rr[top_artifacts]-$(pwd)/artifacts}"
# FIXME : Disable ci_autotest when ready
-rr[ci_autotest]="" # "${rr[ci_autotest]-test}"
+rr[ci_autotest]="${rr[ci_autotest]-build}"
# This project uses a dynamic component list
rr[dynamic_components_list]="${rr[dynamic_components_list]-}"
+# Artifacts version
+rr[major]=4
+rr[minor]=0
+
if [ x"${rr[dynamic_components_list]}" == x"*" ]; then
dynamic_components_list="${!deps_dir[*]}"
else
diff --git a/tcwg_dummy-build.sh b/tcwg_dummy-build.sh
index ccbc2185..69108f56 100755
--- a/tcwg_dummy-build.sh
+++ b/tcwg_dummy-build.sh
@@ -18,6 +18,10 @@ rr[update_baseline]="${rr[update_baseline]-ignore}"
rr[baseline_branch]="linaro-local/ci/${rr[ci_project]}/${rr[ci_config]}"
rr[${rr[components]}_git]=${rr[${rr[components]}_git]-baseline}
+# Artifacts version
+rr[major]=4
+rr[minor]=0
+
# Set start and finish steps for different modes.
start_at=""
if [ x"${rr[mode]}" = x"bisect" ]; then
diff --git a/tcwg_gnu-build.sh b/tcwg_gnu-build.sh
index ed648f96..c21f84d8 100755
--- a/tcwg_gnu-build.sh
+++ b/tcwg_gnu-build.sh
@@ -74,6 +74,7 @@ case "${rr[ci_project]}" in
*) assert_with_msg "Unknown ci_project: ${rr[ci_project]}" false ;;
esac
+# Artifacts version
rr[major]=4
rr[minor]=0
diff --git a/tcwg_kernel-build.sh b/tcwg_kernel-build.sh
index 8eaaef5e..53efe1b2 100755
--- a/tcwg_kernel-build.sh
+++ b/tcwg_kernel-build.sh
@@ -31,6 +31,10 @@ rr[toolchain]=${rr[toolchain]-${ci_config[0]}}
rr[target]=${rr[target]-${ci_config[2]}}
linux_config=${linux_config-${ci_config[4]}}
+# Artifacts version
+rr[major]=4
+rr[minor]=0
+
case "${rr[toolchain]}" in
llvm)
rr[components]="binutils llvm linux qemu" ;;