summaryrefslogtreecommitdiff
path: root/jenkins.sh
AgeCommit message (Collapse)Author
2017-03-07jenkins.sh: Fix handling of --extraconfig opton.Christophe Lyon
Change-Id: I499c4ed5d2f1c872de200ac2072e0ba0eebcfcec
2017-02-17jenkins.sh: Exit early when an error is detected.Christophe Lyon
Instead of just printing an help message and continuing. Change-Id: I6734639095589c861e72d8c0f4a444b86fefa1fc
2017-02-17jenkins.sh: Do not set WORKSPACE to a default value ($pwd).Christophe Lyon
WORKSPACE used to be set to $(pwd) if not already defined, but if jenkins.sh is called remotely via ssh for instance, WORKSPACE is undefined but the build succeeds in $HOME instead, which is misleading and can confuse other Jenkins script. This patch removes this default value and prints an error message in case $user_workspace (derived from $WORKSPACE, or defined by a command-line option) is undefined. Change-Id: I53a927a8f5e00430e2aefa22991daa42b2776b95
2016-12-14Update scripts from ABE. Merge remote-tracking branch 'jenkins-sh/master'Maxim Kuvyrkov
Change-Id: I8e66a03e2533620a6d941d2af4715502f87ef6d4
2016-12-12Make sure we have only one manifest file to deal with.Christophe Lyon
When jenkins.sh is called shortly before midnight, the 2 calls to abe.sh can generate 2 manifest files (different name because of different date). The code can handle one only. Change-Id: I30105f39a4c121cec095cd4cbe1000d5b6a96817
2016-12-04MakeRelease.job, jenkins.sh: Add --abedir option.Christophe Lyon
In MakeRelease.job, rename --abepath to --abedir for homogeneity. In jenkins.sh, replace --abe to --abedir, remove support for short option name (-c). Change-Id: Ic35f1a1a73e848da4da7221017db552d73d25db0
2016-11-17jenkins.sh: Handle expectedly-missing test logs.Maxim Kuvyrkov
When $runtests is false check.out and check.err are not generated. Change-Id: Ic5b0d3de2ad2edf711805099ec48e627d048d7cb
2016-11-16jenkins.sh: Make wget less verbose.Christophe Lyon
When downloading qemu. Change-Id: I840697b23eb58e7fa280fbca2fc569694eb6a5fa
2016-11-10Replace `...` with $(...)Charles Baylis
Shellcheck warns that backticks are deprecated, so replace them with the more modern $(...) syntax. This patch has been generated automatically with this shell command: perl -i -ape 's/`\(([^()`]*)\)`/\$($1)/; s/`([^(][^`]*)`/\$($1)/' *.sh lib/*.sh This leaves two more `...` in test.sh which will be replaced by hand in a later patch. Change-Id: Ia909ee0d7b2d4049c6cacf3de3babafb0f4d0f07
2016-11-06Remove non-functional --nodepends option. TCWG-859.Christophe Lyon
In fact, the option has been removed a long time ago, but some currently unused code in jenkins.sh was still using it. Change-Id: I1bf2810b31704a6693bec609b4620b1ae34f4b1f
2016-10-25jenkins.sh: Pass --testcontainer option to abe.shMaxim Kuvyrkov
... when --testcontainerfile option is given to jenkins.sh. It can take up to 20 minutes to start a testing container when the testing board is under heavy load, so it is best to parallelize it with the build of the toolchain. If starting a container exceeds time required to build the toolchain -- then we need to investigate and fix the bottlenecks on the tester side. Change-Id: Iba061228a9aec90e8d7f9e71162526685a48d8b4
2016-10-25jenkins.sh: Split build and test into 2 abe.sh invocationsMaxim Kuvyrkov
The purpose is two-fold. Firstly, this patch is a step towards separating build and test stages, which we need for testing of binary releases. Immediatelly, however, this patch makes --testcontainerfile jenkins.sh option possible. By splitting test from the build we give time for $testcontainerfile to appear once the test container is started. Change-Id: Ie85fffa8f46498f08fc2eb2fcdd5733586826a1e
2016-08-11jenkins.sh: Remove workaroundMaxim Kuvyrkov
Change-Id: I27d620b217008c8bd8d7d12b0c6f98bc670a0107
2016-08-05Cleanup usage of "fileserver" and "ref" options in scriptsMaxim Kuvyrkov
Remove --fileserver from jenkins.sh, but keep it in MakeRelease.job, since the latter is using fileserver as logserver. Also fix path to reference snapshots. Change-Id: Idbb77318810e5f9c0597a6182e2bc84d036e9400
2016-07-12Fetch gerrit patches in ABE's lib/checkout.sh rather than in jenkins.sh.Maxim Kuvyrkov
The gerrit patches are in refs/changes/*, which are not fetched by default by git clone. Since we are putting more and more stuff to gerrit, it makes sense for us to fetch these commits in ABE. The extra refs are going to be present in the reference git repos, so overhead will be negligible. Change-Id: I3043decb858231a3fcf2bf8a40ed12f4550e8739
2016-07-11Update qemu to be used for armeb-linux-gnueabihf testingMaxim Kuvyrkov
This qemu should no longer fail sync-4 test. Change-Id: I8f2a36fec3cd9b00d2b0b8a7eacc4e717df99859
2016-07-06jenkins.sh: Deploy custom QEMU only when running on x86_64Maxim Kuvyrkov
... otherwise aarch64 and armhf hosts try to execute x86_64-hosted qemu-* binaries. Change-Id: I1e7399c05aa409ad9fa35dcab47d13c325403ed5
2016-07-04jenkins.sh: Use custom qemuMaxim Kuvyrkov
This WIP qemu binaries provide significantly better results: 800 more PASSes, 400 less FAILs -- compared to Trusty qemu-armeb. The tarball also provides qemu-arm and qemu-aarch64, which perform just as well as qemu-armeb. Change-Id: I21113651a01ff4af4a569673fdb54741b41aff54
2016-06-24Print information about the build machine in jenkins.sh rather than ABE's ↵Christophe Lyon
configure. This information is more useful in the case of builds started by Jenkins than when started via the command line. Change-Id: I00952a4c58fb2f28113d7e3e94a81001d3184c33
2016-06-03jenkins.sh: Checkout same sources as will be used for the buildMaxim Kuvyrkov
Currently the changes and overrides to components are not passed to the --checkout all command. This patch fixes this. Change-Id: If902c3cc67b0de5790f2c91f9b7743882daf9e19
2016-05-16Update copyright dates, aways use bash instead of sh, since on some systems ↵Rob Savoye
it's dash instead. Change-Id: I2b819d18b52e35045684948084b125c35d4d43a6
2016-05-10jenkins.sh: Skip partial gdb .sum files.Yvan Roux
Change-Id: I1ba1ae046cd600042d2c473a3afd551c6a6688e7
2016-04-27jenkins.sh: Remove unused code, fix BZ #2204Maxim Kuvyrkov
$revision variable is not used anywhere in jenkins.sh Change-Id: If11fb5738bd6cee4b7a20b35fb63b0112a72797b
2016-04-07jenkins.sh: Reduce parallelist of builds in Cambirdge labMaxim Kuvyrkov
... to try workaround sanitizer testsuite instabilities and races. Note that the Hetzner builders have been renamed tcwg-ex40-XX -> ex40-XX, so the old stanza is no longer applicable. Also the change will only affect the 32-core builders, and the old 4-core builders will remain at -j4 parallelism. Change-Id: Ie7c1ef6a3d89264e5fbad5e06520c20d8582baee
2016-03-29Add support for --extraconfig <tool>=<path> option.Christophe Lyon
Change-Id: Iad2016cb3692c9320555a982311d5792b1a95ac0
2016-03-18Add jenkins.sh "--override" optionMaxim Kuvyrkov
... to specify non-default versions for glibc and other components. Change-Id: I7322c7fd624135d7551b1da3e2afd217e1dfebd6
2015-12-08Unambiguous manifest locationBernard Ogden
If building with such options as tarbin, we get a duplicate manifest inside destdir. Look for the manifest inside build, excluding destdir. There should always be exactly one such manifest. Symptom of multiple manifests is jenkins.sh exiting with error due to: + jenkins.sh: 405: test 'x/<some_path>/foo@bar-<date>-manifest.txt /<some other path>/foo@bar-<date>-manifest.txt' '!=' x + jenkins.sh: 406: echo node=tcwg_x86_64_ex40build_07 ./jenkins.sh: line 406: ${manifest}: ambiguous redirect Change-Id: Id3db8c084622efb0f09504eec51a7b4d1594272a
2015-12-06jenkins.sh: Follow abe.sh's style in handling multiple --excludecheck optionsMaxim Kuvyrkov
Change-Id: Ib08025be14712a6bc536055e87cc71d82164d5df
2015-12-04Check that expect works before starting buildCharles Baylis
There is an ongoing problem which means that expect is unable to spawn processes. Detect the condition before running make check, and try to output a little bit of debug info. Change-Id: Ib9432973d70562da6d31533c64214bcac67cfdec
2015-09-15Merge "jenkins.sh: Do not use ${change} when calling abe.sh --checkout all."Maxim Kuvyrkov
2015-09-11jenkins.sh: Do not use ${change} when calling abe.sh --checkout all.Christophe Lyon
${change} usually contains the GCC revision to build, which is generally only in gerrit changes. Thus, --checkout all cannot access it. This is the purpose of the subsequent git fetch, which brings the gerrit changes into our local repo. The GCC revision will be checked out during the abe build process. Change-Id: I8ac9fa45444e2e969f2ceebfa9610af4fa5246d4
2015-09-11jenkins.sh: Add set -e and set -o pipefail.Christophe Lyon
Special care is needed to continue if the build returned an error: We still want to see the logs etc.... This patch helps catching errors earlier. Change-Id: I1614385775ca7e0d57805666a2ce79f3f9101b77
2015-08-31Remove workaround for "--checkout all" bugMaxim Kuvyrkov
I verified that "--checkout all" works as expected with source update enabled and disabled. Change-Id: I2c4016db4ba51b3ec1f03ece6d26223334cbb998
2015-08-13Exit if logserver is not set.Christophe Lyon
Validation of ABE via Jenkins currently does not pass --logserver when calling jenkins.sh. This results in errors which are silently ignored. This patch fixes this. Change-Id: Ifc70d6ef6b8505a3d0bfd5b3f4ab6bd961cd5df1
2015-07-18Upload build logs whenever logserver is providedMaxim Kuvyrkov
Right now we test native AArchXX toolchains by bootstrapping them, but without running testsuites (which takes 3-4 hours). Without uploading /something/ after a successfull bootstrap to the logserver, we are bound to re-build the toolchains needlessly. This patch fixes that. Change-Id: Ia5c2e057f625cc62c461d023b3acc4f8003deada
2015-07-15jenkins.sh: Add proper locking when checking or updating logs.Maxim Kuvyrkov
Change-Id: I5ac6be8cb3a5182697dceb4e3efc2c868562c197
2015-07-14scripts/compare_jobs.sh: Use specific log directories.Maxim Kuvyrkov
In current work-in-progress backport job results are uploaded to specific directories on $logserver, to avoid any ambiguity in their location. This patch updates compare_jobs.sh script to not use hard-coded log paths. This patch does two things: firstly, it changes default template for log directories to only use variables, that can be calculated from input arguments. Secondly, it moves calculation of those variables to the beginning of the script, so that $logname can be computed, and checked for existence, and the build/test can be, potentially, skipped altogether. Note, this change is, mostly, for BuildFarm-style jobs, as Backport-style jobs override $logname's of their children BuildFarm jobs to a known value to avoid any guesswork. Change-Id: Ib6a0dd141ac35e5b2bb2fbd9e10aa2edeeef43d8
2015-06-05jenkins.sh: Fetch gerrit changes for gcc repoMaxim Kuvyrkov
To test patches in gerrit review we need to help ABE find those SHA1s. Change-Id: Ibdd32233ca54cc5e242565b7f53f78533b96e7ea
2015-06-05Workaround "--checkout all" bugMaxim Kuvyrkov
See https://bugs.linaro.org/show_bug.cgi?id=1338 . Change-Id: I839fb0ba270e302bbaa47bd3508cb5bb9957988c
2015-06-05jenkins.sh: Add --norebuild optionMaxim Kuvyrkov
This option allows re-use of existing test results for backport validation. The backport jobs are expected to set --logname to something like gcc-SHA1 of commits they are testing. Change-Id: Icdc52d0de310c08e307c6de8f627722f4dbaef91
2015-06-05jenkins.sh: Add parameter for setting logs' directoryMaxim Kuvyrkov
Change-Id: Iffc025d8048c3940d2409200691635578fcfb731
2015-06-05jenkins.sh: Don't upload artifacts unless logserver is givenMaxim Kuvyrkov
We want to start separating test results produced by different branches of ABE and by different jenkins jobs. Towards this end we now explicitly set --logserver in Jenkins jobs for builds from which we want to store results, and unset it for builds that test ABE itself. See https://review.linaro.org/#/c/6153/ for details. Change-Id: I26c2ba493b4229cfc3595e0eb7f859e6ecc5e3ff
2015-06-02Rework handling of reference snapshots used by Jenkins jobsMaxim Kuvyrkov
This patch fixes various problems that manifest themselves as "SHA1 not found" in the repository. Reference snapshots are used to speed-up "git clone" of repositories and "wget URL" of tarball components. The reference repositories are shared among all builds and care needs to be taken to access them in read-only mode. Specifically, the only safe mode of access to the reference git repos is via "git clone --reference REFERENCE_REPO http://upstream_repo local_repo". On the other hand, we want to update reference snapshots from time-to-time (using a provided script) and those updates need to be coordinated with "git clone"s that ABE does. For this reason we separate checkout and build/test stages of ABE, and protect checkout stage with a lock. Reference snapshot updates grab this lock in exclusive mode for the updates, while ABE builds grab this lock in shared mode when doing source checkout. Change-Id: I3334a032fa0b422891b708bb258a0e1adf9d81b2
2015-06-01Fix detection of ABE source directoryMaxim Kuvyrkov
Currently, when jenkins.sh is called with a relative path (e.g., ./jenkins.sh), abe_dir will be set to ".", while the rest of the script expects it to be an absolute path. Change-Id: Ib4c49984f89fbd6a9f48ac45a56d1d1f1aa513d1
2015-05-28Add --gcc-branch option to jenkins.shMaxim Kuvyrkov
Currently jenkins.sh depends on environment to set $gcc_branch variable, which is fragile. Add an explicit option to set $gcc_branch in jenkins.sh Change-Id: I74096edbdae03b7cd80e2ad4feee2d7ced6c0af4
2015-05-27Split $fileserver into $fileserver and $logserver in jenkins.shMaxim Kuvyrkov
ABE uses wget http:// to download from fileserver, but jenkins.sh uses ssh to upload to the log server. Right now ssh fails due to missing host key for 148.251.136.42. Fix this by using ex40-01.tcwglab.linaro.rg for both fileserver and logserver. Change-Id: I1fcec2d9a5cec234f065fd1c2c79f73884ea64d1
2015-05-20Explicitly set fileserver and remote-snapshots in jenkins.sh.Maxim Kuvyrkov
Change-Id: Ia03aba41c5eed3d550a4cd39937e398bda6a8060
2015-04-27change abe.tcwglab.linaro.org to hardcoded fileserverRob Savoye
2015-04-07Handle excludecheck flag from Jenkins.Christophe Lyon
The 'excludecheck' Jenkins flag is propagated to: - jenkins.sh/BuildFarm.job - test-backport.sh/Backport.job Support --check flag for native builds too. This patch does not fix the fact that jenkins.sh does not yet support --check, unlike test-backport.sh. Conflicts: test-backport.sh Change-Id: I786edca0fdcec66e95e4097469888a8b0c731c79
2015-04-03Call 'shift' when handling options that require an argument.Christophe Lyon
Change-Id: I466c5cc3144ad92b1034f20f511dcbf4743c8b1c