diff options
-rw-r--r-- | jenkins/dispatch.groovy | 64 |
1 files changed, 35 insertions, 29 deletions
diff --git a/jenkins/dispatch.groovy b/jenkins/dispatch.groovy index df6cba0..e7b2bf4 100644 --- a/jenkins/dispatch.groovy +++ b/jenkins/dispatch.groovy @@ -356,37 +356,43 @@ node(LABEL) { def rsync_cmd = "rsync -avzr" if (artifacts_present == 0) { sh(script: "${rsync_cmd} ${this.conda_build_output_dir}/*.tar.bz2 ${publication_path}") + + // Test a single index per OS. Avoid collision mitigation for now. + if ("${PY_VERSION}" == "3.7" && this.CONDA_PLATFORM == "linux-64") { + index_cmd = "${index_cmd} -t 4 --no-progress --subdir ${this.CONDA_PLATFORM} ${this.manifest.publication_root}" + sh(script: "time ${index_cmd}") + } // Use a lock file to prevent two dispatch jobs that finish at the same // time from trampling each other's indexing process. - def tries_remaining = this.max_publication_tries - if ( fileExists(this.lockfile) ) { - println("Lockfile already exists, waiting for it to be released...") - while ( tries_remaining > 0) { - println("Waiting ${this.publication_lock_wait_s}s for lockfile release...") - sleep(this.publication_lock_wait_s) - if ( !fileExists(this.lockfile) ) { - break - } - tries_remaining-- - } - } - if (tries_remaining != 0) { - sh(script: "touch ${this.lockfile}") - def index_cmd = "conda index" - def version_vals = [] - CONDA_BUILD_VERSION.tokenize('.').each { value -> version_vals.add(value.toInteger()) } - // Conda build 3.15.1 introduces new index command options and behavior. - if (version_vals[1] >= 15) { - index_cmd = "${index_cmd} -t 4 --no-progress --subdir ${this.CONDA_PLATFORM} ${this.manifest.publication_root}" - } else { - index_cmd = "${index_cmd} ${publication_path}" - } - // Update index of conda channel platform directory. - dir(this.conda_build_output_dir) { - sh(script: "time ${index_cmd}") - } - sh(script: "rm -f ${lockfile}") - } + ////def tries_remaining = this.max_publication_tries + ////if ( fileExists(this.lockfile) ) { + //// println("Lockfile already exists, waiting for it to be released...") + //// while ( tries_remaining > 0) { + //// println("Waiting ${this.publication_lock_wait_s}s for lockfile release...") + //// sleep(this.publication_lock_wait_s) + //// if ( !fileExists(this.lockfile) ) { + //// break + //// } + //// tries_remaining-- + //// } + ////} + ////if (tries_remaining != 0) { + //// sh(script: "touch ${this.lockfile}") + //// def index_cmd = "conda index" + //// def version_vals = [] + //// CONDA_BUILD_VERSION.tokenize('.').each { value -> version_vals.add(value.toInteger()) } + //// // Conda build 3.15.1 introduces new index command options and behavior. + //// if (version_vals[1] >= 15) { + //// index_cmd = "${index_cmd} -t 4 --no-progress --subdir ${this.CONDA_PLATFORM} ${this.manifest.publication_root}" + //// } else { + //// index_cmd = "${index_cmd} ${publication_path}" + //// } + //// // Update index of conda channel platform directory. + //// dir(this.conda_build_output_dir) { + //// sh(script: "time ${index_cmd}") + //// } + //// sh(script: "rm -f ${lockfile}") + ////} } else { println("No build artifacts found.") } |