Skip to content

feat: retry docker manifest, retry configurations #5978

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Aug 14, 2025
Merged

feat: retry docker manifest, retry configurations #5978

merged 3 commits into from
Aug 14, 2025

Conversation

caarlos0
Copy link
Member

  • adds avast/retry in favor of our manual retries here and there
  • makes retries configurable for docker images and manifests
  • use retries in docker manifest create and push

closes #5967
fixes #5853

- adds avast/retry in favor of our manual retries here and there
- makes retries configurable for docker images and manifests
- use retries in docker manifest create and push

closes #5967
fixes #5853

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
@caarlos0 caarlos0 self-assigned this Aug 14, 2025
@caarlos0 caarlos0 marked this pull request as ready for review August 14, 2025 04:11
@pull-request-size pull-request-size bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Aug 14, 2025
Copy link

cloudflare-workers-and-pages bot commented Aug 14, 2025

Deploying goreleaser with  Cloudflare Pages  Cloudflare Pages

Latest commit: 3c0356c
Status: ✅  Deploy successful!
Preview URL: https://64dbd8c1.goreleaser.pages.dev
Branch Preview URL: https://retries.goreleaser.pages.dev

View logs

Copy link

codecov bot commented Aug 14, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.75%. Comparing base (15bb0ca) to head (3c0356c).
⚠️ Report is 6 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #5978      +/-   ##
==========================================
+ Coverage   82.61%   82.75%   +0.14%     
==========================================
  Files         165      165              
  Lines       16594    16568      -26     
==========================================
+ Hits        13709    13711       +2     
+ Misses       2290     2265      -25     
+ Partials      595      592       -3     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@caarlos0 caarlos0 requested a review from Copilot August 14, 2025 04:53
Copy link
Contributor

@Copilot 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 introduces centralized retry functionality using the avast/retry-go/v4 library to replace manual retry implementations across Docker operations and git cloning. The goal is to make retry configurations configurable for Docker images and manifests while standardizing retry behavior.

  • Adds configurable retry settings for Docker images and manifests
  • Replaces manual retry loops with the avast/retry-go library
  • Standardizes retry behavior across Docker manifest creation, pushing, and git clone operations

Reviewed Changes

Copilot reviewed 11 out of 12 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
go.mod Adds avast/retry-go/v4 dependency
pkg/config/config.go Adds Retry struct and integrates it into Docker and DockerManifest configs
www/docs/customization/docker.md Documents new retry configuration for Docker push operations
www/docs/customization/docker_manifest.md Documents new retry configuration for Docker manifest operations
internal/pipe/docker/docker.go Replaces manual retry loop with retry-go library for Docker push operations
internal/pipe/docker/manifest.go Adds retry functionality to manifest create and push operations
internal/pipe/docker/api_docker.go Removes manual retry logic from Docker manifest creation
internal/pipe/release/release.go Replaces manual retry loop with retry-go library for release uploads
internal/client/git.go Replaces manual retry loop with retry-go library for git clone operations
internal/pipe/docker/docker_test.go Adds tests for default retry configurations
internal/pipe/release/release_test.go Updates test expectations for new error message format

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
@caarlos0 caarlos0 merged commit dec0744 into main Aug 14, 2025
17 of 18 checks passed
@caarlos0 caarlos0 deleted the retries branch August 14, 2025 14:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

docker manifests should retry pushes
1 participant