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 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

4 participants