From 23db97eb3dceaa7c46ba7d9a24682939cd3f4e09 Mon Sep 17 00:00:00 2001 From: Olev Kartau Date: Mon, 26 Jun 2017 13:34:37 +0300 Subject: [PATCH] CI Jenkinsfile: move cleanup to job main part Deletion of older builds is more reliable as part of main stage. Running it later during on-device testers created problems: - in case of queued runs, same worker started another job before cleaning thread started, delaying completion by length of new job; - in case of failure during post-build, cleanup did not run at all; Signed-off-by: Olev Kartau --- Jenkinsfile | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9d6cea8e7d..4181e21aea 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -26,11 +26,9 @@ def testinfo_data = "" def ci_git_commit = "" def global_sum_log = "" def added_commits = "" -def builder_node = "" -def builder_wspace = "" def slot_name = "ci-" // reasonable value: keep few recent, dont take risk to fill disk -int num_build_dirs_to_keep = 4 +int num_builds_to_keep = 4 // Define global environment common for all docker sessions def script_env = """ @@ -49,9 +47,6 @@ try { timestamps { node('rk-docker') { ws("workspace/${slot_name}${ci_build_id}") { - // remember node and workspace needed by workspace cleaner - builder_node = "${env.NODE_NAME}" - builder_wspace = "${env.WORKSPACE}" set_gh_status_pending(is_pr, 'Prepare for build') stage('Cleanup workspace') { deleteDir() @@ -60,7 +55,10 @@ try { checkout_content(is_pr) } stage('Build docker image') { - build_docker_image(image_name) + parallel( + "build-docker-image": { build_docker_image(image_name) }, + "cleanup": { ws("workspace") { trim_build_dirs(slot_name, num_builds_to_keep) }} + ) } def docker_image = docker.image(image_name) run_args = ["--device=/dev/kvm -v ${env.PUBLISH_DIR}:${env.PUBLISH_DIR}:rw", @@ -105,15 +103,6 @@ try { } // node } // timestamps - // insert older trees deletion job into tester jobs array - test_runs["clean_older_workspaces"] = { - node(builder_node) { - ws("workspace") { - trim_build_dirs(slot_name, num_build_dirs_to_keep) - } - } - } - test_targets = testinfo_data.split("\n") for(int i = 0; i < test_targets.size() && test_targets[i] != ""; i++) { def one_target_testinfo = test_targets[i]