summaryrefslogtreecommitdiff
path: root/tcwg_kernel-build.sh
AgeCommit message (Collapse)Author
2019-01-21tcwg_kernel-build.sh: Simplify reproduction logicMaxim Kuvyrkov
Remove "reproduce" mode and follow the manifest. Use dedicated variables for storing projects' SHA1s' in the manifest in clone_repo like we do in all other places. Change-Id: I5407c403cd553bb6103addda0829ba8d0f0869cb
2019-01-16tcwg_kernel-build.sh: Stabilize kernel build for ccacheMaxim Kuvyrkov
Kernel likes to include auto-generated stuff into main headers, which completely breaks ccache optimizations. KBUILD_BUILD_TIMESTAMP is the big one, it's different between builds from the same sources. SUBLEVEL and EXTRAVERSION change often enough to break large bisections. Same for LOCALVERSION. We save kernel.release in artifacts/ to have a record of release strings. Change-Id: I06ed87c554481b5202cde517ee4fbaa6c25e454b
2019-01-11tcwg_kernel-build.sh: Make sure manifest declares variables in the global ↵Maxim Kuvyrkov
namespace. Change-Id: Ic618e76d38a3dc446b6fd29e05caf9987770f01b
2018-12-18tcwg_kernel-build.sh: Add new --mode reproduceMaxim Kuvyrkov
... to reproduce a previous build using manifest. Change-Id: I21521204a3d8b409c7dbf1c45137ddb8c6f85f15
2018-12-18tcwg_kernel-build.sh: Improve checking of parameters.Maxim Kuvyrkov
Change-Id: Iba94ba9ea421f2dc326b8909a71807ebe46a52b4
2018-12-14round-robin.sh, tcwg_kernel-build.sh: Remove ${rr[git_read_only]}Maxim Kuvyrkov
This assert variable turned out to no be useful. Change-Id: Ibea06f6bab6e11ae2625bb1e440fbee1319decf7
2018-12-14tcwg_kernel-build.sh: Move round-robin helpers to round-robin.shMaxim Kuvyrkov
Change-Id: I6753fae4d94add85b5729ea1b121395ae5c679f0
2018-12-12tcwg_kernel-build.sh: Fix typo.Maxim Kuvyrkov
Change-Id: I6bd417e5f36d7df05d530d9633117fce4d9f315f
2018-12-12tcwg_kernel-build.sh: Document ${rr[]} elementsMaxim Kuvyrkov
Change-Id: Ib2b7461f191a0a47df5ee61f21c2279c20707268
2018-12-12Fix handling of $top_artifactsMaxim Kuvyrkov
Make handling of $top_artifacts same as all other rr[] variables Change-Id: I9343217bf819bd46fa8d418c6549c4be32e4afd3
2018-12-12tcwg_kernel-build.sh: Make check_regression depend only on ${rr[]}Maxim Kuvyrkov
rr[reset_baseline]="$reset_baseline" Change-Id: I101947234502348c8f9ea32463c0ce31d7598fe9
2018-12-12tcwg_kernel-build.sh: Make build_linux depend only on ${rr[]}Maxim Kuvyrkov
rr[linux_config]="$linux_config" rr[toolchain]="$toolchain" Change-Id: I3a8bb31e2c9cb6954810fa8cd3b3215356c8730d
2018-12-12tcwg_kernel-build.sh: Make build_abe_1 depend only on ${rr[]}Maxim Kuvyrkov
rr[target]="$target" Change-Id: Ie0807b4c57f67f34c0363ea322ca42b4d0c56bfe
2018-12-12tcwg_kernel-build.sh: Make reset_artifacts depend only on ${rr[]}Maxim Kuvyrkov
Rename rr[current_project]="$current_project" rr[current_rev]="$current_rev" rr[git_read_only]="$git_read_only" rr[mode]="$mode" Change-Id: I6bb6a946f9a78d5ae89456b1b7345f020de9734a
2018-12-12tcwg_kernel-build.sh: Rename reset_artifacts depend only on ${rr[]}Maxim Kuvyrkov
Rename $top_artifacts -> ${rr[top_artifacts]} $baseline -> ${rr[baseline_branch]} Change-Id: I87d07cf41bbbce2fe020c1b84c782ce412e6f596
2018-12-12tcwg_kernel*: Rename git_repo and git_branchMaxim Kuvyrkov
This is a mechanical change to rename: git_repo[X] -> rr[X_url] git_branch[X] -> rr[X_rev] Change-Id: Idda39b49950b414fa6bacdb0094d5cb125d1867d
2018-12-12tcwg_kernel*: Rename config[*] to rr[*].Maxim Kuvyrkov
This is beginning of a massive variable renaming patch series. The goal is to encapsulate all configuration variables that round-robin routines are using into "rr" associative array. This encapsulation will allow to move round-robin routines such as clone_repo, prepare_abe, build_abe, etc. into helper file and make it depend on a well-documented array of configuration variables "rr". Change-Id: Ie8aad82c1527ced79465fa8d21a1eaa0b11f5e7b
2018-12-12tcwg_kernel*: Stop using and remove default configurationMaxim Kuvyrkov
Rely on manifest snippets in tcwg_kernel/* instead. Also make obligatory_variables handle bash arrays by using "declare -p". User-visible change is that now developers will need to explicitly add "@@ ./tcwg_kernel/gnu-master.sh", etc., which have been default in the past. Change-Id: I788e7cdca098fddeb67e9087252f9d53691407bf
2018-12-11tcwg_kernel-build.sh: Remove unnecessary indirection via ${git_dirs[]}Maxim Kuvyrkov
Change-Id: I0a7c32c871d33044be172855d037f152b2f5f82f
2018-12-11tcwg_kernel-build.sh: Add --mode continueMaxim Kuvyrkov
Add new "--mode continue" for developer purposes. Preserve existing artifacts and continue build from specified step. Change-Id: I4694cd8ae08f8ea2a5ef9a6c891c731449dc572e
2018-12-11tcwg_kernel-build.sh: Support building glibc and gcc-stage2Maxim Kuvyrkov
Make ABE routines more generic to enable building glibc and gcc stage2. These routines are going to be moved to round-robin.sh helper files to share with other jobs. Change-Id: I81038aa53293075faba643e4ad93303d5bd18041
2018-12-11tcwg_kernel-*.sh: Remove --tidy supportMaxim Kuvyrkov
Now that we are sharing workspaces among all configurations, we no longer need to be super-careful about disk space. Change-Id: I2702fe9ced1b104a335f91982ec06b1798bc80e9
2018-12-07jenkins-helpers: Add manifest generation logic to convert_args_to_variablesMaxim Kuvyrkov
... and re-work bash sourcing logic "@@" to be more flexible / verbose. The idea is that specifying "%% ./manifest.sh" as the 1st argument on the command line will cause all subsequent arguments to be logged in ./manifest.sh. A reproducer build then can include "@@ ./manifest.sh" and reproduce the original build. Build environment that is not on the command line (e.g., repo revisions) can be added to the manifest with help of "manifest_out" helper. E.g., command-line argument "--current_rev master" will be logged in manifest as == current_rev="master" == and then logic in the script can override that with cat <<EOF | manifest_out current_rev=$(git rev-parse HEAD) EOF thus producing manifest with == current_rev="master" ... current_rev=abc123cab == Change-Id: I066be570c08eda4f80f148dccf475d1794eba229
2018-11-26tcwg_kernel-build.sh: Fix reset_artifacts to not delete artifacts/jenkins .Maxim Kuvyrkov
Change-Id: I32c37e5e8cfdff474aab187ec9985a1177644391
2018-11-26tcwg_kernel-build.sh: Preserve artifacts/jenkins in reset_artifactsMaxim Kuvyrkov
So that we can archive info provided by tcwg_kernel.yaml such as build-name and (in future) URL links to jobs. The latter will be helpful when browsing results history in base-artifacts.git repo. Also fix a bug that preserved all of "artifacts/1-reset_artifacts/*" files, instead of only artifacts/1-reset_artifacts/console.log. Change-Id: I549126e7284bd34452abecd35553160d325c79e7
2018-11-26Don't ignore "null" values in variable expansionsMaxim Kuvyrkov
Replace ${var:-default} with ${var-default}. I learned something new about shell scripting today. From bash manual: === When not performing substring expansion, using the form described below (e.g., ‘:-’), Bash tests for a parameter that is unset or null. Omitting the colon results in a test only for a parameter that is unset. Put another way, if the colon is included, the operator tests for both parameter’s existence and that its value is not null; if the colon is omitted, the operator tests only for existence. === The immediate problem I need to fix is handling of host_aarchXX_excludecheck and host_x86_64_excludecheck parameters in tcwg-buildfarm.sh. With ":-" syntax the empty ("null") values are replaced by defaults, causing GCC testsuite to be ignored on aarchXX hosts when "--host_aarchXX_excludecheck ''" is given. There happens to be a single usage ":-" in ${rw:-rw} in start-container-qemu.sh, where ":-" is actually needed. Change-Id: Ibc8e070b698e1c76e2161eb65d40639b8cdec1f3
2018-11-14tcwg_kernel-build.sh: Fill in update_baseline and push_baselineMaxim Kuvyrkov
... and add git_push helper. Change-Id: I2bdbbc14aa08f9bb10b1690780542c6e049c4b73
2018-11-14tcwg_kernel-build.sh: Fill in no_regression_p and check_regression.Maxim Kuvyrkov
Change-Id: I1725a201a7665d8728180bf021050e8c1c1378f7
2018-11-14tcwg_kernel-build.sh: Fill build_linux and count_linux_objsMaxim Kuvyrkov
Change-Id: I9cddd58582afd36e9dd6c10273c2d175dd9c076a
2018-11-14tcwg_kernel-build.sh: Fill build_llvm* functionsMaxim Kuvyrkov
... and add print_llvm_target helper. Change-Id: I20b048d4acd942a6e4a06acb2308489f00391a9a
2018-11-14tcwg_kernel-build.sh: Add logic to build Binutils and GCC using ABE.Maxim Kuvyrkov
Add several jenkins-helpers along the way. Change-Id: I6b654f6a5cfa5386d5f691452aacaac11ff89f5b
2018-11-13tcwg_kernel-build.sh: Fill in clone_repo and add git_init_linaro_local_remoteMaxim Kuvyrkov
Change-Id: I36ed5078a80360c42ed6079ae98f76fa94354de7
2018-11-08tcwg_kernel-build: Fill reset_artifacts.Maxim Kuvyrkov
Change-Id: Icec96100e32fc5df26f1536c0102c1431d7c971c
2018-11-07tcwg_kernel-build: New build scriptMaxim Kuvyrkov
This patch adds execution flow structure for tcwg_kernel-build script. The code for individual execution steps will be in separate patches for ease of review. Change-Id: I5e5adba01b6178addd3cdbae9dc18bdc0f7e7697