summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Kuvyrkov <maxim.kuvyrkov@linaro.org>2019-01-19 14:43:37 +0000
committerMaxim Kuvyrkov <maxim.kuvyrkov@linaro.org>2019-01-22 10:38:43 +0000
commit06f786a9afed7c5947b9c3fba94b83588233dcd6 (patch)
tree02b246dcee8300f342167ca7c31d1d936b3d08a7
parent73d563e61e0bd76c93f3639cc9e384322a56134c (diff)
tcwg_kernel-bisect.sh: Simplify handling of artifact directories
... for the benefit of reproducer runs. Create all symlinks with "-f" to overwrite them in reproducer runs. Keep baseline directory in place since otherwise the reproducer run will try to move the symlink thinking it is a directory and we end up with two symlinks pointing to each other. The baseline build is special (build-baseline.sh and build-baseline/) -- it produces pre-requisites for "test" builds. We add build-SHA1 symlinks for the baseline build because it can happen that last_good == baseline, so when creating symlink for last_good we need build-<SHA1 of baseline> in place for such cases. Change-Id: If11b27fad7dc3112a4aa43bb021e1de8d3884d00
-rwxr-xr-xtcwg_kernel-bisect.sh19
1 files changed, 8 insertions, 11 deletions
diff --git a/tcwg_kernel-bisect.sh b/tcwg_kernel-bisect.sh
index 3f4693cf..921699f5 100755
--- a/tcwg_kernel-bisect.sh
+++ b/tcwg_kernel-bisect.sh
@@ -61,10 +61,8 @@ cd $current_project
# Remember $good_rev from the baseline build above.
good_rev=$(git rev-parse HEAD)
baseline_rev="$good_rev"
-mv "$artifacts/build-baseline" "$artifacts/build-$baseline_rev"
-mv "$artifacts/manifests/build-baseline.sh" "$artifacts/manifests/build-$baseline_rev.sh"
-ln -s "build-$baseline_rev" "$artifacts/build-baseline"
-ln -s "build-$baseline_rev.sh" "$artifacts/manifests/build-baseline.sh"
+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
cat <<EOF | manifest_out
@@ -173,9 +171,8 @@ EOF
fi
fi
-ln -s "build-$good_rev" "$artifacts/build-good"
-ln -s "build-$good_rev.sh" "$artifacts/manifests/build-good.sh"
-
+ln -f -s "build-$good_rev" "$artifacts/build-good"
+ln -f -s "build-$good_rev.sh" "$artifacts/manifests/build-good.sh"
git checkout --detach $bad_rev
$artifacts/test.sh &
@@ -251,8 +248,8 @@ if [ -f $artifacts/first-bad ]; then
touch $artifacts/jenkins/build-name
sed -i -e "s/\$/-$first_bad/" $artifacts/jenkins/build-name
- ln -s "build-$first_bad" "$artifacts/build-first_bad"
- ln -s "build-$first_bad.sh" "$artifacts/manifests/build-first_bad.sh"
+ ln -f -s "build-$first_bad" "$artifacts/build-first_bad"
+ ln -f -s "build-$first_bad.sh" "$artifacts/manifests/build-first_bad.sh"
last_good=$(git -C $current_project rev-parse $first_bad^)
@@ -286,8 +283,8 @@ if [ -f $artifacts/first-bad ]; then
cd ..
fi
- ln -s "build-$last_good" "$artifacts/build-last_good"
- ln -s "build-$last_good.sh" "$artifacts/manifests/build-last_good.sh"
+ ln -f -s "build-$last_good" "$artifacts/build-last_good"
+ ln -f -s "build-$last_good.sh" "$artifacts/manifests/build-last_good.sh"
cat >> $artifacts/jenkins/mail-body.txt <<EOF
Successfully identified regression in $current_project on $target @ $toolchain-${rr[${toolchain}_version]} @ linux-${rr[linux_version]}-$linux_config between bad $bad_rev and baseline $baseline_rev .