chore: artifactory and nexus

This commit is contained in:
Patrick Sy 2025-03-04 11:29:56 +01:00
parent 28d06b28ae
commit 377e2a5343
Signed by: Patrick.Sy
GPG key ID: DDDC8EC51823195E

View file

@ -43,6 +43,13 @@
- e.g. backup and restore `node_modules` directory - e.g. backup and restore `node_modules` directory
- Setup within pipelines - Setup within pipelines
- Important: proper cache key selection
- Performance depends on the cache's storage location
- on node: fast but localized to node
- network storage: still has to download cache archive
- Pro: Artifacts are downloaded directly from upstream, no further config needed - Pro: Artifacts are downloaded directly from upstream, no further config needed
- Con: Does not address rate limiting concerns for initial cache warm up - Con: Does not address rate limiting concerns for initial cache warm up
- Pro: No extra config needed in tooling apart of pipeline cache config - Pro: No extra config needed in tooling apart of pipeline cache config
@ -66,7 +73,7 @@
- Pro: Can be re-used in pipelines, dev machines, cloud/prod environments - Pro: Can be re-used in pipelines, dev machines, cloud/prod environments
- Pro: Little state management necessary if any - Pro: Little state management necessary if any
- Con: Requires extra config in tooling, build tools, containerd, etc - Con: Requires extra config in tooling, build tools, `containerd`, etc
- Using only the pull-through cache should be fast enough for builds in CI - Using only the pull-through cache should be fast enough for builds in CI
- Reproducible builds ftw - Reproducible builds ftw
@ -75,17 +82,34 @@
#### Forgejo Runner Cache #### Forgejo Runner Cache
- common actions like `setup-java` do a good job as they create dependencies on all build config files (e.g all `pom.xml`)
- invalidation if there is any change to dependencies etc.
#### Nexus #### Nexus
Open source / free version [Nexus OSS GH](https://github.com/sonatype/nexus-public)
License evaluation needed - Open source / free version
- EPL License allows commercial distribution
- OSS version only has an extremely limited feature set of supported repository types.
- basically only maven support
- does not suffice for our use case
- Community Edition has more features but is limited in sizing. Upgrade to Pro edition necessary in those limits are exceeded.
#### Artifactory #### Artifactory
Open source / free version - Open source / free version
- Limited feature set
- Separate distributions per repo type java / container / etc
- Inconvenient and insufficient for our use case
License evaluation needed License evaluation needed
[EULA](https://jfrog.com/artifactory/eula/)
#### Artipie #### Artipie
@ -115,9 +139,16 @@ License evaluation needed
#### 'Simple' Squid proxy (or similar) #### 'Simple' Squid proxy (or similar)
- Caching of arbitrary resouces via HTTP
#### Harbor #### Harbor
### Recommendation ### Recommendation
- File system cache
- Easy solution as it is offered within most pipelines
- Reduces build times significantly if dependencies have to be downloaded from outside networks
- Avoid using fs cache, i.e. forgejo runner cache, long term or at all - Avoid using fs cache, i.e. forgejo runner cache, long term or at all
- Unless you can handle proper cache invalidation
- Promote immutable infra and reproducible builds without side effects - Promote immutable infra and reproducible builds without side effects
- Use as additional layer if there is no local cache repo