Skip to content

Conversation

@scadu
Copy link
Contributor

@scadu scadu commented Jul 21, 2025

Version v1.0.0 introduces:

• Multi-provider Docker image caching supporting both Amazon ECR and Google Artifact Registry

• Different cache strategies including artifact caching for complete image reuse, build caching for layer optimization, and hybrid mode that combines both approaches

• Docker build features including BuildKit secrets support, multi-stage build targeting, custom build arguments, and flexible cache source configuration.

JoeColeman95 and others added 3 commits July 18, 2025 12:12
Currently, this plugin is a rough draft of the end product I am aiming for, with additional functions to be added.

For the time being, it adds support for acr/dockerhub/ecr/gcr but has not been tested. This will need to be tested on each provider.

On next commits I will add Buildkite as a provider, as well as potentially package cloud, as it's more or less a copy and paste job with the way I've designed this to be reusable for the most-part and providing our solutions here is logical for an in-house plugin.

I will move on to testing functionality to ensure the base foundations are working as expected and make changes from there to get it more in line with my vision.

[WIP]
Fix plugin prefix

Fix PLUGIN_PREFIX maybe

wat
Fixes
```
name invalid: Missing image name. Pushes should be of the form docker push HOST-NAME/PROJECT-ID/REPOSITORY/IMAGE
[ERROR]: Failed to push cache image
[ERROR]: Failed to save cache to GCR
```

Also, rename gcr to gar as GCR is gone:
https://cloud.google.com/artifact-registry/docs/transition/transition-from-gcr
@linear
Copy link

linear bot commented Jul 21, 2025

SUP-4155 Create basic plugin structure

This community plugin will be the starting point for this new plugin's functionality, but should begin with our template.

@scadu scadu marked this pull request as draft July 21, 2025 09:22
refactor: remove multi-registry support in favor of single-registry calls

I had initially intended for the plugin to allow multiple calls to different registries, but decided it was too convoluted and would be best for multiple calls to the plugin within a pipeline for this functionality
- Remove redundant command and post-command hooks
- Consolidate caching logic into pre-command hook with Docker build support
- Add support for multiple caching strategies (artifact, build-time, hybrid)
- Implement complete provider architecture for ECR and GAR registries
- Add configuration validation and dependency checking
- Expand plugin.yml with full feature set including build args, secrets, and strategies
- Remove unused PLUGIN_PREFIX variable and standardize environment variable usage
- Add automatic cache key generation from dependency files
- Implemented cache hit/miss logic with fallback strategies
- Will look for :latest tag when it cannot find cache key (in the case that it was auto generated)
- Fixed gar.io, I think this was assumed as it's a GoDaddy parked domain and Google look to have moved to pkg.dev
- Added some comments here as had to create functions to work around some stub issues.
@JoeColeman95 JoeColeman95 reopened this Jul 28, 2025
@JoeColeman95 JoeColeman95 marked this pull request as ready for review July 28, 2025 09:51
@JoeColeman95 JoeColeman95 changed the title Add plugin base, fix Google Artifact Registry Add plugin base Jul 28, 2025
Copy link

@tomowatt tomowatt left a comment

Choose a reason for hiding this comment

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

:shipit:

@JoeColeman95 JoeColeman95 merged commit 252d99c into main Jul 28, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants