summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--round-robin.sh27
-rwxr-xr-xtcwg_kernel-bisect.sh21
-rwxr-xr-xtcwg_kernel-build.sh14
3 files changed, 27 insertions, 35 deletions
diff --git a/round-robin.sh b/round-robin.sh
index 82cfc1d0..ac1ff3b3 100644
--- a/round-robin.sh
+++ b/round-robin.sh
@@ -6,19 +6,22 @@
# PROJECT's git url
#rr[PROJECT_url]
-# PROJECT's git revision parsable by git rev-parse.
+# PROJECT's git branch or SHA1 revision parsable by git rev-parse.
+#rr[PROJECT_branch]
+
+# PROJECT's git SHA1 revision. These are mostly used in manifests.
#rr[PROJECT_rev]
# Baseline branch name for current configuration. These branches are
# present in all above git repos.
#rr[baseline_branch]="linaro-local/ci/CONFIGURATION"
-# PROJECT that we are testing in this build. Use ${rr[current_rev]} for
+# PROJECT that we are testing in this build. Use ${rr[current_branch]} for
# this project, and ${rr[baseline_branch]} for all other projects.
#rr[current_project]="$current_project"
-# Git revision of ${rr[current_project]} to test.
-#rr[current_rev]="$current_rev"
+# Git branch or SHA1 revision of ${rr[current_project]} to test.
+#rr[current_branch]="$current_branch"
# Run mode: bisect or non-bisect. In bisect mode we do a couple things
# slightly differently (e.g., don't touch repo in clone_repo() ).
@@ -84,21 +87,21 @@ clone_repo ()
local branch
# Select the branch to build.
- # ${rr[current_rev]} specifies branch for ${rr[current_project]},
+ # ${rr[current_branch]} specifies branch for ${rr[current_project]},
# and everything else uses baseline branch.
if [ x"$project" = x"${rr[current_project]}" ]; then
- if [ x"${rr[current_rev]}" = x"default" ]; then
- branch=${rr[${current_project}_rev]}
- elif [ x"${rr[current_rev]}" = x"baseline" ]; then
+ if [ x"${rr[current_branch]}" = x"default" ]; then
+ branch=${rr[${current_project}_branch]}
+ elif [ x"${rr[current_branch]}" = x"baseline" ]; then
branch="refs/remotes/baseline/${rr[baseline_branch]}"
else
- branch=${rr[current_rev]}
+ branch=${rr[current_branch]}
fi
else
branch="refs/remotes/baseline/${rr[baseline_branch]}"
fi
- branch="${rr[${project}_sha1]-$branch}"
+ branch="${rr[${project}_rev]-$branch}"
# Decide on whether to use read-only or read-write mode for
# refs/remotes/baseline. We use read-only wherever possible to allow
@@ -121,14 +124,14 @@ clone_repo ()
cur_rev=$(git -C $project rev-parse HEAD)
cat <<EOF | manifest_out
-rr[${project}_sha1]=$cur_rev
+rr[${project}_rev]=$cur_rev
EOF
if [ x"$project" = x"${rr[current_project]}" ]; then
local baseline_rev
baseline_rev=$(git_rev_parse_long $project ${rr[baseline_branch]} baseline)
# Prepare for failure. If build fails we will bisect sha1 for
- # ${rr[current_rev]} and sha1 for $baseline_rev.
+ # ${rr[current_branch]} and sha1 for ${rr[baseline_branch]}.
cat > ${rr[top_artifacts]}/trigger-bisect-on-failure <<EOF
current_project=${rr[current_project]}
baseline_rev=$baseline_rev
diff --git a/tcwg_kernel-bisect.sh b/tcwg_kernel-bisect.sh
index df37dcc9..9bfe6eaf 100755
--- a/tcwg_kernel-bisect.sh
+++ b/tcwg_kernel-bisect.sh
@@ -13,8 +13,6 @@ fresh_dir $artifacts "$artifacts/manifests/*" "$artifacts/jenkins/*"
convert_args_to_variables "$@"
shift "$SHIFT_CONVERTED_ARGS"
-bad_rev="${bad_rev:-default}"
-baseline_rev="${baseline_rev:-baseline}"
BUILD_URL="${BUILD_URL:-$(pwd)}"
reproduce_bisect="${reproduce_bisect:-false}"
@@ -22,7 +20,7 @@ reproduce_bisect="${reproduce_bisect:-false}"
convert_args_to_variables ^^ $reproduce_bisect %% $artifacts/manifests/build-parameters.sh "$@"
$reproduce_bisect || manifest_pop
-obligatory_variables current_project toolchain
+obligatory_variables bad_rev baseline_rev current_project toolchain
linux_config="${linux_config:-defconfig}"
target="${target:-native}"
@@ -34,13 +32,6 @@ if $verbose; then set -x; fi
trap "eval \"echo ERROR at \${FUNCNAME[0]}:\${BASH_LINENO[0]}\" > $artifacts/failures" EXIT
-if [ x"$bad_rev" = x"default" ]; then
- echo "ERROR: Need explicit --bad_rev"
- exit 1
-else
- bad_rev=$(git -C $current_project rev-parse "$bad_rev")
-fi
-
# Build baseline that we are going to re-use to speed-up bisection.
# (This also confirms that infrastructure is OK.)
echo "Testing baseline_rev $baseline_rev (should be success)"
@@ -49,7 +40,7 @@ $scripts/tcwg_kernel-build.sh \
%% $artifacts/manifests/build-baseline.sh \
@@ $artifacts/manifests/build-parameters.sh \
--mode "baseline" \
- --current_rev "$baseline_rev" \
+ --current_branch "$baseline_rev" \
--reset_baseline true \
--top_artifacts "$artifacts/build-baseline" \
--verbose "$verbose"
@@ -58,8 +49,6 @@ assert ! [ -f $artifacts/failures ]
cd $current_project
-# Remember $good_rev from the baseline build above.
-baseline_rev=$(git rev-parse HEAD)
ln -f -s "build-baseline" "$artifacts/build-$baseline_rev"
ln -f -s "build-baseline.sh" "$artifacts/manifests/build-$baseline_rev.sh"
echo "$baseline_rev" >> $artifacts/good_revs
@@ -142,7 +131,7 @@ EOF
clone_or_update_repo . refs/remotes/mainline/master "$url"
mainline_master="${mainline_master-$(git merge-base $bad_rev HEAD)}"
cat <<EOF | manifest_out
-declare -g mainline_master=$mainline_rev
+declare -g mainline_master=$mainline_master
EOF
try_revs+=($mainline_master)
@@ -177,7 +166,7 @@ if [ x"$res" = x"0" ]; then
# Build job had a spurious failure. Re-try.
cat > $artifacts/trigger-2-build-master <<EOF
current_project=$current_project
-current_rev=$bad_rev
+current_branch=$bad_rev
EOF
rm -f $artifacts/jenkins/mail-recipients.txt
trap "" EXIT
@@ -360,7 +349,7 @@ EOF
# regressions (worse than $bad_rev).
cat > $artifacts/trigger-1-reset-baseline <<EOF
current_project=$current_project
-current_rev=$first_bad
+current_branch=$first_bad
reset_baseline=true
EOF
diff --git a/tcwg_kernel-build.sh b/tcwg_kernel-build.sh
index 8b0e6a09..d31329e9 100755
--- a/tcwg_kernel-build.sh
+++ b/tcwg_kernel-build.sh
@@ -11,27 +11,27 @@ convert_args_to_variables "$@"
mode="${mode-baseline}"
obligatory_variables toolchain \
- rr[linux_version] rr[linux_url] rr[linux_rev]
+ rr[linux_version] rr[linux_url] rr[linux_branch]
# Toolchain to use: gnu or llvm
case "$toolchain" in
"gnu") obligatory_variables rr[gnu_version] \
- rr[binutils_url] rr[binutils_rev] \
- rr[gcc_url] rr[gcc_rev] ;;
+ rr[binutils_url] rr[binutils_branch] \
+ rr[gcc_url] rr[gcc_branch] ;;
"llvm") obligatory_variables rr[llvm_version] \
- rr[llvm_url] rr[llvm_rev] ;;
+ rr[llvm_url] rr[llvm_branch] ;;
esac
case "$mode" in
"jenkins-full")
- obligatory_variables current_project current_rev
+ obligatory_variables current_project current_branch
;;
esac
# Set custom revision for one of the projects, and use baseline revisions
# for all other projects.
current_project="${current_project-none}"
-current_rev="${current_rev-default}"
+current_branch="${current_branch-default}"
linux_config="${linux_config-defconfig}"
reset_baseline="${reset_baseline-false}"
@@ -96,7 +96,7 @@ run_step_init "$start_at" "$finish_at" "$top_artifacts" "$base_artifacts_opt" "$
rr[baseline_branch]="linaro-local/ci/tcwg_kernel/$toolchain-${rr[${toolchain}_version]}-$target-${rr[linux_version]}-$linux_config"
rr[current_project]="$current_project"
-rr[current_rev]="$current_rev"
+rr[current_branch]="$current_branch"
rr[mode]="$mode"
rr[reset_baseline]="$reset_baseline"
rr[target]="$target"