summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-07-12Remove unused parameters in CreateDirectoryDigestFromTreeMaksim Denisov
2024-07-12Move BazelMsgFactory reading functions to a separate classMaksim Denisov
2024-07-12Store newly spliced executables as copies.Maksim Denisov
During multithreaded splicing, the main process can be forked (inheriting open file descriptors). In this case, the executable file saved using hardlinking becomes inaccessible. To prevent this, executables must be stored as copies made in a child process.
2024-07-12test summary defaults: use timesKlaus Aehlig
... as the default summarizer can make good use of that, if provided.
2024-07-12Internal test rules: only use in summary action what is necessaryKlaus Aehlig
2024-07-12Internal test rules with infastructure: also record pwdKlaus Aehlig
2024-07-12Test summarizer: also report on average timeKlaus Aehlig
... of passed tests (as only for those, the time is meaningful). Given that we read the timing information anyway, if available, we can as well report more useful information.
2024-07-12Test rules: only provide to the summary action what is neededKlaus Aehlig
... and add a rule allowing the summarizer to specify what it needs.
2024-07-12Tests: also record `pwd`Klaus Aehlig
... as test meta data. Tests are executed in an unspecified directory, assuming pass or fail is independent of the location where the test is run. While this generally is true, test logs often contain the working directory. So, in order to more easily compare different execution orders of a potential race condition, it can be desirable to compare logs "up to the execution directory". This, however, requires that this directory is recored in the first place. Do so. For consistency of the output format, also have a (fixed) artifact pwd in the summary report.
2024-07-11Add test to check correct target-cache shardingPaul Cristian Sarbu
...between local, remote, and served builds.
2024-07-11just: Fix storage instantiation in mainPaul Cristian Sarbu
As the storage instance also instantiates the target cache, we need to ensure that each such instance has at that point all the correct remote endpoint information to ensure the target cache sharding works as expected. In particular, the server-side and client-side operations of just have a slightly different setup for the remote endpoint address, therefore they require the storage instantiation to be done separately.
2024-07-10ParallelRetrieveToCas: process prerequisites in parallelKlaus Aehlig
2024-07-10ParallelRetrieveToCas: avoid duplicated requestsKlaus Aehlig
While no additional blob will be transferred, doing a request for missing blobs is still a request and, in particular, an unnecessary round trip. Therefore avoid this, by remembering what we synchronized already.
2024-07-10Artifact::ObjectInfo: add orderKlaus Aehlig
2024-07-10ArtifactDigest: add orderKlaus Aehlig
2024-07-09Test rules with infrastructure: also honor TEST_SUMMARY_EXECUTION_PROPERTIESKlaus Aehlig
Also for tests that provide infrastructure, it can be desirable to run those tests a large number of times. Therefore, support additional remote-execution properties for the summary action so that a suitable remote-execution endpoint can be chosen.
2024-07-08tutorial on tests: set shell defaultsKlaus Aehlig
... as they will be used in newer versions of rules-cc to set the path for the test-summary action.
2024-07-08Remove hardlink design as implementedKlaus Aehlig
... and mention the fix in CHANGELOG.
2024-07-08CHANGELOG: fix typosKlaus Aehlig
2024-07-05mark split-splice test as IO-heavyKlaus Aehlig
2024-07-05tests: support additional remote-execution properties for summariesKlaus Aehlig
If a test is run several times (as set by RUNS_PER_TEST), a summary of the individual test runs is computed using a summarizer as configured in the target layer of the rules. As the inputs for computing that test summary are all the individual test runs, that action has a large number of files as input, including a large number of identical files, e.g., the ones indicating the outcome of an individual run. Therefore, allow setting additional remote-execution properties allowing to dispatch that action to a suitable end point.
2024-07-05Add test verifying we can handle actions with 200k identical input filesKlaus Aehlig
2024-07-05local action: copy input file on reaching symlink limitKlaus Aehlig
... and continue with the newly created copy as target for the next hard links. In this way, we get rid of the restriction we used to have that the number of identical inputs be not greater than the hardlink limit.
2024-07-05FileSystemManager::CreateFileHardlink: return error code on failureKlaus Aehlig
Instead of returning a plain boolean, return an expected with the same boolean value that in case of an error indicates the error code. In this way, an error-specific handling is possible by consumers. While there, also add proper quoting of the involved file names.
2024-07-05Convert StorageConfig to a general classMaksim Denisov
2024-07-05Remove HermeticLocalTestFixtureMaksim Denisov
...and create StorageConfig and Storage in place if needed.
2024-07-05Convert Storage to a general classMaksim Denisov
2024-07-05Call uplinking via UplinkerMaksim Denisov
... instead of static calls to GarbageCollector
2024-07-05Implement uplinking logic in a separate class.Maksim Denisov
2024-07-05Use StorageConfig with generation for initialization of Storage's generationsMaksim Denisov
...instead of std::filesystem::path. StorageConfig is extended to return paths of Storage's parts.
2024-07-05Pass StorageConfig and Storage to just-mr mapsMaksim Denisov
2024-07-05Pass Storage to add-to-casMaksim Denisov
2024-07-05Pass Storage to RepositoryConfigMaksim Denisov
...and adjust AnalyseContext.
2024-07-05Pass StorageConfig and Storage to LocalApiMaksim Denisov
2024-07-05Pass StorageConfig and Storage to ServerImplMaksim Denisov
2024-07-05Pass StorageConfig and Storage to ServeMaksim Denisov
2024-07-05Pass StorageConfig to git_repo and git_repo_remoteMaksim Denisov
2024-07-05Pass Storage and StorageConfig to StorageUtils by referenceMaksim Denisov
2024-07-05Pass StorageConfig to GarbageCollectionMaksim Denisov
2024-07-05Pass StorageConfig to GarbageCollector::SharedLockMaksim Denisov
2024-07-05Use StorageConfig functionality via Instance()Maksim Denisov
...to track changes during refactoring easier.
2024-07-05Move functionality from StorageConfig to related classes.Maksim Denisov
2024-07-05Remove ConfigData from StorageConfigMaksim Denisov
...since it is an extra class that overcomplicates the config class.
2024-07-05Use a separate constructor for sharded TargetCacheMaksim Denisov
2024-07-04Remove default arguments that are always passed anyway.Maksim Denisov
2024-07-04Replace the Auth and Auth::TLS singletonsPaul Cristian Sarbu
Use a builder pattern for creation and validation, in a manner that allows also other authentication methods to be added in the future besides the current TLS/SSL. The main Auth instances are built early and then passed by not_null const pointers, to avoid passing temporaries, replacing the previous Auth::TLS instances passed by simple nullable const pointers. Where needed, these passed Auth instances are also stored, by const ref. Tests also build Auth instances as needed, either with the default 'no certification' or from the test environment arguments.
2024-07-04Pass Auth::TLS instance to serve and execute clientsPaul Cristian Sarbu
2024-07-04Use ApiBundle's Auth::TLS instance in serve and execute serversPaul Cristian Sarbu
2024-07-04Pass Auth::TLS instance to BazelApi and ServeApiPaul Cristian Sarbu
2024-07-04Use Auth and TLS configurations via Instance()Paul Cristian Sarbu
...to more easily keep track of changes during refactoring.