mirror of
https://github.com/docker/login-action.git
synced 2026-02-08 03:57:25 +00:00
Adds configurable retry mechanism with basic exponential backoff to handle intermittent failures when authenticating to container registries, particularly GCP (GAR/GCR) where I'm seeing errors intermittently. - Add retry-attempts input (default: 0 for backward compatibility, making it opt in) - Add retry-delay input (default: 5000ms) - Implement exponential backoff retry logic in docker login - Chose to just write a simple retry function vs. going with a library - Retry all errors except 5xxs - I'm seeing intermittent 401 failures - Add tests for retry behavior - Update README with new input parameters Signed-off-by: Naush Korai <naush.korai@mixpanel.com>
44 lines
1.3 KiB
YAML
44 lines
1.3 KiB
YAML
# https://help.github.com/en/articles/metadata-syntax-for-github-actions
|
|
name: 'Docker Login'
|
|
description: 'GitHub Action to login against a Docker registry'
|
|
author: 'docker'
|
|
branding:
|
|
icon: 'anchor'
|
|
color: 'blue'
|
|
|
|
inputs:
|
|
registry:
|
|
description: 'Server address of Docker registry. If not set then will default to Docker Hub'
|
|
required: false
|
|
username:
|
|
description: 'Username used to log against the Docker registry'
|
|
required: false
|
|
password:
|
|
description: 'Password or personal access token used to log against the Docker registry'
|
|
required: false
|
|
ecr:
|
|
description: 'Specifies whether the given registry is ECR (auto, true or false)'
|
|
required: false
|
|
scope:
|
|
description: 'Scope for the authentication token'
|
|
required: false
|
|
logout:
|
|
description: 'Log out from the Docker registry at the end of a job'
|
|
default: 'true'
|
|
required: false
|
|
registry-auth:
|
|
description: 'Raw authentication to registries, defined as YAML objects'
|
|
required: false
|
|
retry-attempts:
|
|
description: 'Number of retry attempts for transient failures'
|
|
default: '0'
|
|
required: false
|
|
retry-delay:
|
|
description: 'Delay between retries in milliseconds'
|
|
default: '5000'
|
|
required: false
|
|
|
|
runs:
|
|
using: 'node20'
|
|
main: 'dist/index.js'
|
|
post: 'dist/index.js'
|