Skip to content

Add support for local file system for logs assets#808

Merged
pditommaso merged 9 commits intomasterfrom
enable-generic-object-storage
May 22, 2025
Merged

Add support for local file system for logs assets#808
pditommaso merged 9 commits intomasterfrom
enable-generic-object-storage

Conversation

@pditommaso
Copy link
Copy Markdown
Collaborator

@pditommaso pditommaso commented Mar 11, 2025

This PR add support for object storage other than AWS S3 to store build logs.

Solve #807

Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
@pditommaso pditommaso marked this pull request as draft March 11, 2025 11:23
@ewels ewels added the planned label Apr 22, 2025
@pditommaso pditommaso mentioned this pull request May 9, 2025
@gitguardian

This comment was marked as outdated.

Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
@pditommaso pditommaso requested a review from Copilot May 22, 2025 17:57
@pditommaso pditommaso marked this pull request as ready for review May 22, 2025 17:58
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds support for generic object storage for build logs and conda lock files, moving away from AWS S3–specific configuration.

  • Updates configuration files to use a unified "path" attribute instead of separate bucket/prefix settings.
  • Refactors tests and service implementations to use a new BuildConfig for storage paths and to segregate logs and locks storage operations.
  • Adjusts the ObjectStorageOperationsFactory to create storage operations based on the new configuration.

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/test/resources/application-test.yml Replaces bucket/prefix settings with a unified path for logs and locks.
src/test/groovy/io/seqera/wave/util/BucketTokenizerTest.groovy Adds test case for a 'some/path' value; confirms that non-scheme paths are tokenized properly.
src/test/groovy/io/seqera/wave/service/logs/BuildLogsServiceTest.groovy Adjusts tests to instantiate BuildLogServiceImpl with BuildConfig, ensuring proper key formation.
src/main/resources/application-dev.yml Updates local dev configuration to use paths for logs and locks.
src/main/resources/application-buildlogs-local.yml Removes the local build logs configuration file.
src/main/resources/application-buildlogs-aws-test.yml Updates AWS test configuration to use path-based settings.
src/main/groovy/io/seqera/wave/service/logs/BuildLogServiceImpl.groovy Refactors service implementation to retrieve keys from BuildConfig and to use dedicated storage operations for logs and locks.
src/main/groovy/io/seqera/wave/service/aws/ObjectStorageOperationsFactory.groovy Refactors factory methods to support both local and AWS storage based on the new configuration.
src/main/groovy/io/seqera/wave/configuration/BuildConfig.groovy Introduces logsPath and locksPath properties and memoized getters to extract prefixes.

Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
@pditommaso pditommaso changed the title Add support for generic obj storage Add support for local file system for logs assets May 22, 2025
Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
@pditommaso pditommaso merged commit ec9aa31 into master May 22, 2025
4 checks passed
@pditommaso pditommaso deleted the enable-generic-object-storage branch May 22, 2025 21:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants