aboutsummaryrefslogtreecommitdiff
path: root/src/zen/cmds/builds_cmd.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* silence oom ood errors for sentry (#423)Dan Engelbrecht2025-06-051-0/+18
| | | - Improvement: Don't report OOD or OOM errors to Sentry when running `zen builds` commands
* pause, resume and abort running builds cmd (#421)Dan Engelbrecht2025-06-051-77/+360
| | | | | - Feature: `zen builds pause`, `zen builds resume` and `zen builds abort` commands to control a running `zen builds` command - `--process-id` the process id to control, if omitted it tries to find a running process using the same executable as itself - Improvement: Process report now indicates if it is pausing or aborting
* revert system temp dir for builds upload (#422)Dan Engelbrecht2025-06-051-29/+27
| | | | * revert temp upload folder to be inside source directory to avoid filling up system disk * use selected subcommand when displaying help for failed command line options in zen builds
* builds download url (#419)Dan Engelbrecht2025-06-041-57/+138
| | | | * RemoveQuotes helper * `--url` option for `zen builds` command has been reworked to accept a "Cloud Artifact URL", removing the need to specify "host", "namespace" and "bucket" separately
* new builds search (#418)Dan Engelbrecht2025-06-041-16/+28
| | | * don't require bucket for search operations to allow multi-bucket search
* faster scavenge (#417)Dan Engelbrecht2025-06-041-47/+165
| | | | - Improvement: Multithreaded scavenge pass for zen builds download - Improvement: Optimized check for modified files when verifying state of scavenged paths
* fixed size chunking for encrypted files (#410)Dan Engelbrecht2025-06-031-263/+286
| | | | | - Improvement: Use fixed size block chunking for know encrypted/compressed file types - Improvement: Skip trying to compress chunks that are sourced from files that are known to be encrypted/compressed - Improvement: Add global open file cache for written files increasing throughput during download by reducing overhead of open/close of file by 80%
* use system temp dir (#412)Dan Engelbrecht2025-06-021-21/+24
| | | * use system temp dir when uploading builds
* use explicit capture for lambdas (#404)Dan Engelbrecht2025-05-201-876/+1227
|
* replace copy file (#403)Dan Engelbrecht2025-05-201-6/+34
| | | Custom CopyFile in zen builds command increasing throughput by 50% on Windows and give better progress update
* handle exception with batch work (#401)Dan Engelbrecht2025-05-191-256/+286
| | | | | | | | | | | | | | | * use ParallelWork in rpc playback * use ParallelWork in projectstore * use ParallelWork in buildstore * use ParallelWork in cachedisklayer * use ParallelWork in compactcas * use ParallelWork in filecas * don't set abort flag in ParallelWork destructor * add PrepareFileForScatteredWrite for temp files in httpclient * Use PrepareFileForScatteredWrite when stream-decompressing files * be more relaxed when deleting temp files * allow explicit zen-cache when using direct host url without resolving * fix lambda capture when writing loose chunks * no delay when attempting to remove temp files
* parallel work handle dispatch exception (#400)Dan Engelbrecht2025-05-161-1219/+1142
| | | - Bugfix: Wait for async threads if dispatching of work using ParallellWork throws exception
* sparse win file write (#398)Dan Engelbrecht2025-05-161-1/+20
| | | * Added `--use-sparse-files` option to `zen builds` command improving write performance of large files. Enabled by default.
* builds allow redirect option (#379)Dan Engelbrecht2025-05-051-3/+14
| | | * add --allow-redirect to zen builds upload/download
* UE style formatted progress output (#380)Dan Engelbrecht2025-05-051-33/+173
| | | * add UE style @progress style progress
* Merge branch 'main' into zs/zencli-list-namespaces-bucketsZousar Shaker2025-04-241-405/+355
|\
| * limit retries on buildpart finalize (#374)Dan Engelbrecht2025-04-241-2/+8
| | | | | | * limit retries on buildpart finalize
| * use state file if available when doing builds diff command (#369)Dan Engelbrecht2025-04-241-81/+62
| | | | | | | | * use state file if available when doing builds diff command * remove dead code
| * zen wipe command (#366)Dan Engelbrecht2025-04-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | - Feature: New `zen wipe` command for fast cleaning of directories, it will not remove the directory itself, only the content - `--directory` - path to directory to wipe, if the directory does not exist or is empty, no action will be taken - `--keep-readonly` - skip removal of read-only files found in directory, defaults to `true`, set to `false` to remove read-only files - `--quiet` - reduce output to console, defaults to `false` - `--dryrun` - simulate the wipe without removing anything, defaults to `false` - `--yes` - skips prompt to confirm wipe of directory - `--plain-progress` - show progress using plain output - `--verbose` - enable verbose console output - `--boost-workers` - increase the number of worker threads, may cause computer to be less responsive, defaults to `false`
| * parse system dir for builds (#365)Dan Engelbrecht2025-04-231-1/+1
| | | | | | | | * make sure we always parse system options for zen builds command * make MakeSafeAbsolutePath nodiscard
| * make sure to call MakeSafeAbsolutePathÍnPlace where appropriate (#363)Dan Engelbrecht2025-04-231-15/+15
| |
| * add cxxopts overload for parsing file paths from command line (#362)Dan Engelbrecht2025-04-221-320/+283
| |
* | Use SubOption instead of Verb to control flowzousar2025-04-221-1/+1
| |
* | xmake precommitzousar2025-04-221-5/+5
| |
* | Replacing list-container with list-namespaceszousar2025-04-221-3/+3
| |
* | Replace container with namespaceszousar2025-04-221-11/+17
| |
* | Fix list-container positional args to remove query-pathzousar2025-04-151-2/+2
| |
* | Add a list-container subcommand to zen builds commandzousar2025-04-141-2/+69
|/
* fix race condition in multipart download (#358)Dan Engelbrecht2025-04-111-13/+13
|
* filesystem retry fixes (#354)Dan Engelbrecht2025-04-101-20/+31
| | | | | | | | | * add more forgiving retries with filesystem * fall back to FindFirstFile if access prevents us from using GetFileAttributes * only validate hash if we have a complete payload in http client * changelog
* multpart download crash (#353)Dan Engelbrecht2025-04-101-1/+2
| | | * fix lambda capture during multipart-download
* scavenge builds (#352)Dan Engelbrecht2025-04-081-185/+666
| | | | - Improvement: `zen builds` now scavenges previous download locations for data to reduce download size, enabled by default, disable with `--enable-scavenge=false` - Bugfix: Failing to rename a file during download sometimes reported an error when it succeeded when retrying
* tweaked verbose output (#351)Dan Engelbrecht2025-04-071-23/+18
|
* fixed host resolving if both host and and override-host (url) was given (#350)Dan Engelbrecht2025-04-071-17/+40
|
* save global download info file for scavenging (#349)Dan Engelbrecht2025-04-071-105/+189
| | | | * save global download info file for scavenging * don't let test code write to official state folder
* improved layout of end of run stats output (#348)Dan Engelbrecht2025-04-071-10/+15
|
* build store save access times (#341)v5.6.3-pre0Dan Engelbrecht2025-04-031-5/+5
| | | | | * save payload size in log for buildstore * read/write access times and manifest for buldstore * use retry when removing temporary files
* use oidctoken executable to generate auth (#336)Dan Engelbrecht2025-04-021-4/+32
| | | - Feature: `zen builds` auth option `--oidctoken-exe-path` to let zen run the OidcToken executable to get and refresh authentication token
* upload fail mac linux (#338)Dan Engelbrecht2025-04-021-11/+17
| | | * fix macos/linux path resolving
* added --find-max-block-count option to builds upload (#337)Dan Engelbrecht2025-04-021-3/+13
|
* builds url discovery (#334)Dan Engelbrecht2025-04-011-43/+204
| | | | | - Feature: Added `--host` option to use Jupiters list of cloud host and zen servers to resolve best hosts - Feature: Use local zenserver as builds cache if it has the `builds` service enabled and `--cloud-discovery-host` is provided and no remote zenserver cache hosts can be found - Improvement: Added `--override-host` option as a replacement for `--url` (`--url` still works, but `--override-host` is preferred)
* verify that we can read input files that are only hashed (#333)Dan Engelbrecht2025-04-011-5/+116
| | | | | * output build and part details by default * output executable and version at start of builds command * verify that we can read files we do not chunk
* logging improvement (#332)Dan Engelbrecht2025-03-311-17/+20
| | | | * Cache -> Download cache * cleaned up info regarding local cache/state and remote cache
* multithreaded clean (#331)Dan Engelbrecht2025-03-311-88/+337
| | | | - Improvement: Faster cleaning of directories - Improvement: Faster initial scanning of local state
* long filename support (#330)Dan Engelbrecht2025-03-311-124/+185
| | | - Bugfix: Long file paths now works correctly on Windows
* check file from local track state during download (#329)Dan Engelbrecht2025-03-301-118/+147
|
* temp path options and reduced scanning of target folder (#328)Dan Engelbrecht2025-03-281-250/+562
| | | | | | - Feature: zen: `--zen-folder-path` added to `builds` command, `list`, `upload`, `download`, `fetch-blob`, `validate-part` to control where `.zen` folder is placed and named - Improvement: Only check known files from remote state when downloading to a target folder with no local state file - Improvement: Don't move existing local to cache and back if they are untouched
* build cache prime (#327)Dan Engelbrecht2025-03-271-443/+644
| | | | - Feature: zen `--boost-workers` option to builds `upload`, `download` and `validate-part` that will increase the number of worker threads, may cause computer to be less responsive - Feature: zen `--cache-prime-only` that uploads referenced data from a part to `--zen-cache-host` if it is not already present. Target folder will be untouched.
* optional compress of block chunks (#326)Dan Engelbrecht2025-03-271-56/+131
| | | | | | - Feature: zenserver: Add command line option `--gc-buildstore-duration-seconds` to control GC life time of build store data - Improvement: ELF and MachO executable files are no longer chunked - Improvement: Compress chunks in blocks that encloses a full file (such as small executables) - Bugfix: Strip path delimiter at end of string in StringToPath
* zen build cache service (#318)Dan Engelbrecht2025-03-261-812/+1071
| | | | | | | | | - **EXPERIMENTAL** `zen builds` - Feature: `--zen-cache-host` option for `upload` and `download` operations to use a zenserver host `/builds` endpoint for storing build blob and blob metadata - Feature: New `/builds` endpoint for caching build blobs and blob metadata - `/builds/{namespace}/{bucket}/{buildid}/blobs/{hash}` `GET` and `PUT` method for storing and fetching blobs - `/builds/{namespace}/{bucket}/{buildid}/blobs/putBlobMetadata` `POST` method for storing metadata about blobs - `/builds/{namespace}/{bucket}/{buildid}/blobs/getBlobMetadata` `POST` method for fetching metadata about blobs - `/builds/{namespace}/{bucket}/{buildid}/blobs/exists` `POST` method for checking existance of blobs