diff options
-rw-r--r-- | cimonitor-configs/CI-TCWG.yaml | 2 | ||||
-rw-r--r-- | cimonitor-configs/LNT.yaml | 64 | ||||
-rw-r--r-- | jenkins-helpers.sh | 25 | ||||
-rwxr-xr-x | round-robin-baseline.sh | 17 | ||||
-rw-r--r-- | round-robin.sh | 33 | ||||
-rwxr-xr-x | start-container-docker.sh | 2 | ||||
-rwxr-xr-x | tcwg-lnt/create-server.sh | 28 | ||||
-rw-r--r-- | tcwg-lnt/tcwg-lnt-01/config | 68 | ||||
-rw-r--r-- | tcwg-lnt/tcwg-lnt-02/config | 43 | ||||
-rw-r--r-- | tcwg-lnt/tcwg-lnt-03/config | 67 | ||||
-rwxr-xr-x | tcwg-report-stale-rr-jobs.sh | 180 | ||||
-rwxr-xr-x | tcwg-start-container.sh | 2 | ||||
-rwxr-xr-x | tcwg-update-lnt-results.sh | 46 | ||||
-rwxr-xr-x | tcwg_aosp-build.sh | 4 | ||||
-rwxr-xr-x | tcwg_bmk-build.sh | 18 | ||||
-rwxr-xr-x | tcwg_chromium-build.sh | 10 | ||||
-rwxr-xr-x | tcwg_dummy-build.sh | 4 | ||||
-rwxr-xr-x | tcwg_gnu-build.sh | 1 | ||||
-rwxr-xr-x | tcwg_kernel-build.sh | 4 |
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" ;; |