diff options
Diffstat (limited to 'tcwg_kernel-build.sh')
-rwxr-xr-x | tcwg_kernel-build.sh | 66 |
1 files changed, 27 insertions, 39 deletions
diff --git a/tcwg_kernel-build.sh b/tcwg_kernel-build.sh index 5f64b163..ab169e5b 100755 --- a/tcwg_kernel-build.sh +++ b/tcwg_kernel-build.sh @@ -1,51 +1,59 @@ #!/bin/bash -set -ef -o pipefail +set -euf -o pipefail scripts=$(dirname $0) . $scripts/jenkins-helpers.sh convert_args_to_variables "$@" -# Execution mode: baseline, bisect, continue, jenkins-full -mode="${mode-baseline}" +obligatory_variables rr[ci_config] -obligatory_variables target toolchain +# Execution mode: baseline, bisect, continue, jenkins-full +rr[mode]="${rr[mode]-baseline}" -case "$mode" in +case "${rr[mode]}" in "jenkins-full") - obligatory_variables current_project current_branch + obligatory_variables rr[current_project] rr[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_branch="${current_branch-default}" +rr[ci_project]="${rr[ci_project]-tcwg_kernel}" +rr[baseline_branch]="${rr[baseline_branch]-linaro-local/ci/${rr[ci_project]}/${rr[ci_config]}}" +rr[current_branch]="${rr[current_branch]-default}" +rr[current_project]="${rr[current_project]-none}" +rr[reset_baseline]="${rr[reset_baseline]-false}" +rr[top_artifacts]="${rr[top_artifacts]-$(pwd)/artifacts}" + +# {toolchain_name}-{toolchain_ver}-{target}-{linux}-{linux_config} +IFS=- read -a ci_config <<EOF +${rr[ci_config]} +EOF +rr[toolchain]=${rr[toolchain]-${ci_config[0]}} +rr[target]=${rr[target]-${ci_config[2]}} +rr[linux_config]=${rr[linux_config]-${ci_config[4]}} -linux_config="${linux_config-defconfig}" -reset_baseline="${reset_baseline-false}" start_at="${start_at-default}" finish_at="${finish_at-default}" -top_artifacts="${top_artifacts-$(pwd)/artifacts}" verbose="${verbose-true}" verbose2="${verbose2-false}" -set -u - if $verbose2; then set -x; fi -trap "eval \"echo ERROR at \${FUNCNAME[0]}:\${BASH_LINENO[0]}\" > $top_artifacts/failures" EXIT +trap "eval \"echo ERROR at \${FUNCNAME[0]}:\${BASH_LINENO[0]}\"" EXIT # Set start and finish steps for different modes. default_start_at="" default_finish_at="" -case "$mode" in +base_artifacts_opt="base-artifacts" +case "${rr[mode]}" in "baseline") default_finish_at="update_baseline" ;; "bisect") - case "$toolchain:$current_project" in + case "${rr[toolchain]}:${rr[current_project]}" in gnu:binutils) default_start_at="build_abe-binutils" ;; gnu:gcc) default_start_at="build_abe-stage1" ;; gnu:linux) default_start_at="count_linux_objs" ;; @@ -56,14 +64,14 @@ case "$mode" in ;; "continue") # Developer mode. - case "$toolchain" in + case "${rr[toolchain]}" in "gnu") default_start_at="prepare_abe" ;; "llvm") default_start_at="build_llvm" ;; esac + base_artifacts_opt="" ;; "jenkins-full") ;; esac - if [ x"$start_at" = x"default" ]; then start_at="$default_start_at" fi @@ -71,27 +79,7 @@ if [ x"$finish_at" = x"default" ]; then finish_at="$default_finish_at" fi -if [ x"$mode" != x"continue" ]; then - base_artifacts_opt="base-artifacts" -else - base_artifacts_opt="" -fi - -run_step_init "$start_at" "$finish_at" "$top_artifacts" "$base_artifacts_opt" "$verbose" - -rr[baseline_branch]="linaro-local/ci/${rr[ci_project]}/${rr[ci_config]}" -rr[current_project]="$current_project" -rr[current_branch]="$current_branch" -rr[mode]="$mode" -rr[reset_baseline]="$reset_baseline" -rr[target]="$target" -rr[top_artifacts]="$top_artifacts" - -# Linux config to build in build_linux. -rr[linux_config]="$linux_config" - -# Toolchain to use: gnu or llvm. -rr[toolchain]="$toolchain" +run_step_init "$start_at" "$finish_at" "${rr[top_artifacts]}" "$base_artifacts_opt" "$verbose" . $scripts/round-robin.sh |