This commit is contained in:
Maxim Slipenko 2023-08-06 14:44:40 +00:00 committed by GitHub
parent d85ae1c6a7
commit 06513ea73e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 21 deletions

View File

@ -296,7 +296,7 @@ properties:
- name: registries - name: registries
description: | description: |
Credentials for registries. Ignored if password was set. Credentials for registries.
Example: Example:
```yaml ```yaml

View File

@ -140,7 +140,7 @@ func commandBuild(build Build, dryrun bool) *execabs.Cmd {
args = append(args, "--platform", strings.Join(build.Platforms.Value(), ",")) args = append(args, "--platform", strings.Join(build.Platforms.Value(), ","))
} }
for _, repo := range build.Repo.Value() { for _, repo := range build.Repo.Value() {
for _, arg := range build.Tags.Value() { for _, arg := range build.Tags.Value() {
args = append(args, "-t", fmt.Sprintf("%s:%s", repo, arg)) args = append(args, "-t", fmt.Sprintf("%s:%s", repo, arg))
} }

View File

@ -45,7 +45,7 @@ type RegistryData struct {
} }
type RegistriesYaml struct { type RegistriesYaml struct {
Registries []RegistryData Registries []RegistryData `yaml:"registries"`
} }
// Build defines Docker build parameters. // Build defines Docker build parameters.
@ -186,26 +186,24 @@ func (p *Plugin) Execute() error {
} }
if p.settings.Login.RegistriesYaml != "" { if p.settings.Login.RegistriesYaml != "" {
if p.settings.Login.Password == "" { var t RegistriesYaml
var t RegistriesYaml
err := yaml.Unmarshal([]byte(p.settings.Login.RegistriesYaml), &t) err := yaml.Unmarshal([]byte(p.settings.Login.RegistriesYaml), &t)
if err != nil {
return fmt.Errorf("error unmarshal registries: %w", err)
}
for _, registryData := range t.Registries {
if registryData.Registry == "" {
registryData.Registry = "https://index.docker.io/v1/"
}
cmd := commandLogin(registryData)
err := cmd.Run()
if err != nil { if err != nil {
return fmt.Errorf("error unmarshal registries: %w", err) return fmt.Errorf("error authenticating: %w", err)
} }
for _, registryData := range t.Registries {
if registryData.Registry == "" {
registryData.Registry = "https://index.docker.io/v1/"
}
cmd := commandLogin(registryData)
err := cmd.Run()
if err != nil {
return fmt.Errorf("error authenticating: %w", err)
}
}
} else {
logrus.Warn("Cannot use password and registries at same time!")
} }
} }