jenkins-pipelines/scripts
Davlet Panech fe5793b71d archive-dir: binary search + parallelism
Performance enhancements for archive-dir:

* While searching for old checksums, use BSD look [1] (binary search),
  rather than grep (linear). This requires a docker image with that
  utility installed. A Dockerfile is included and is meant to be built
  and pushed to Docker Hub manually as needed. Image name:
  starlings/jenkins-pipelines-coreutils:TIMESTAMP .

* Process all files in parallel. Previously we only calculated checksums
  in parallel.

Timings before & after the patch, using a build with ~100K files and
~300K old checksums (docker + aptly + mirrors):

* before patch with JOBS=4: 2 hrs 7 min
* this patch with JOBS=4: 26 min
* this patch with JOBS=1: 1hr 10 min

[1] https://man.openbsd.org/look.1

TESTS
=======================
Run "archive-misc" and make sure it copies/links the same files as
before the patch.

Story: 2010226
Task: 48184

Signed-off-by: Davlet Panech <davlet.panech@windriver.com>
Change-Id: I2ad271be673e8499c17a87e9d52864b40e217fc7
2023-06-06 15:48:11 -04:00
..
helpers archive-dir: binary search + parallelism 2023-06-06 15:48:11 -04:00
lib archive-dir: binary search + parallelism 2023-06-06 15:48:11 -04:00
templates build-docker-images: add retry delay 2023-05-29 13:42:30 -04:00
archive-docker-images.sh Rename env function to avoid conflicts 2022-09-02 14:11:28 -04:00
archive-helm-charts.sh Better safe_copy_dir & friends 2022-09-22 09:08:42 -04:00
archive-iso.sh Better safe_copy_dir & friends 2022-09-22 09:08:42 -04:00
archive-misc.sh archive-dir: binary search + parallelism 2023-06-06 15:48:11 -04:00
archive-packages.sh Better safe_copy_dir & friends 2022-09-22 09:08:42 -04:00
archive-prerequisites.sh Rename env function to avoid conflicts 2022-09-02 14:11:28 -04:00
archive-wheels.sh Rename env function to avoid conflicts 2022-09-02 14:11:28 -04:00
build-docker-base.sh build-docker-images: add retry delay 2023-05-29 13:42:30 -04:00
build-docker-images.sh build-docker-images: add retry delay 2023-05-29 13:42:30 -04:00
build-export-dir.sh New build parameter EXTRA_EXPORT_FILES. 2022-10-14 11:38:51 -04:00
build-helm-charts.sh Override main helm charts tar name 2023-02-16 11:08:33 -05:00
build-iso.sh build-iso: better ISO & secureboot signing config 2023-04-05 20:13:16 -04:00
build-packages.sh Don't launch needless rebuilds once we have success 2022-10-13 14:54:51 -04:00
build-wheels.sh build-docker-images: add retry delay 2023-05-29 13:42:30 -04:00
clean-build.sh archive-dir: binary search + parallelism 2023-06-06 15:48:11 -04:00
clone-source.sh PATCH_LIST: workaround for Jenkins bugs 2022-10-06 11:25:51 -04:00
configure-build.sh Set BUILD_DATE to normalized $TIMESTAMP 2022-09-09 10:39:46 -04:00
create-changelog.sh Create LAST_BUILD_* files in BUILD_HOME 2022-09-20 15:25:22 -04:00
create-latest-containers-symlinks.sh Don't fail if docker images output is missing 2022-10-07 16:39:05 -04:00
create-latest-iso-symlinks.sh Create latest-iso-build symlink in archive area 2023-05-15 15:14:28 -04:00
create-latest-symlinks.sh Rename env function to avoid conflicts 2022-09-02 14:11:28 -04:00
docker-login.sh Rename env function to avoid conflicts 2022-09-02 14:11:28 -04:00
download-prerequisites.sh Rename env function to avoid conflicts 2022-09-02 14:11:28 -04:00
init-env.sh Rename env function to avoid conflicts 2022-09-02 14:11:28 -04:00
print-config.sh Add license and copyright 2022-08-15 14:16:07 -04:00
publish-docker-images.sh Better safe_copy_dir & friends 2022-09-22 09:08:42 -04:00
publish-export-dir.sh export_dir: don't dereference symlinks 2022-10-17 17:52:52 -04:00
publish-helm-charts.sh Add license and copyright 2022-08-15 14:16:07 -04:00
publish-iso.sh Add license and copyright 2022-08-15 14:16:07 -04:00
publish-logs.sh Rename env function to avoid conflicts 2022-09-02 14:11:28 -04:00
publish-packages.sh publish_utils.sh: even faster checksum matching 2022-10-28 14:48:53 -04:00
publish-wheels.sh publish-wheels: create missing destination dir 2022-10-26 14:12:50 -04:00
sign-iso.sh sign-iso: retry on failure 2023-05-24 11:41:25 -04:00
start-containers.sh Adapt to new secureboot signing code 2023-03-10 10:12:02 -05:00
stop-containers.sh Clean up minikube at end of build 2023-03-30 15:03:21 -04:00