add dry-run support for publish command

Signed-off-by: Guillaume Lours <705411+glours@users.noreply.github.com>
This commit is contained in:
Guillaume Lours 2023-10-05 11:31:56 -07:00 committed by Nicolas De loof
parent a345515f91
commit 2c0b023273
1 changed files with 34 additions and 31 deletions

View File

@ -102,12 +102,13 @@ func (s *composeService) publish(ctx context.Context, project *types.Project, re
Digest: digest.FromBytes(emptyConfig), Digest: digest.FromBytes(emptyConfig),
Size: int64(len(emptyConfig)), Size: int64(len(emptyConfig)),
} }
var imageManifest []byte
if !s.dryRun {
err = resolver.Push(ctx, named, configDescriptor, emptyConfig) err = resolver.Push(ctx, named, configDescriptor, emptyConfig)
if err != nil { if err != nil {
return err return err
} }
imageManifest, err = json.Marshal(v1.Manifest{
imageManifest, err := json.Marshal(v1.Manifest{
Versioned: specs.Versioned{SchemaVersion: 2}, Versioned: specs.Versioned{SchemaVersion: 2},
MediaType: v1.MediaTypeImageManifest, MediaType: v1.MediaTypeImageManifest,
ArtifactType: "application/vnd.docker.compose.project", ArtifactType: "application/vnd.docker.compose.project",
@ -117,13 +118,14 @@ func (s *composeService) publish(ctx context.Context, project *types.Project, re
if err != nil { if err != nil {
return err return err
} }
}
w.Event(progress.Event{ w.Event(progress.Event{
ID: repository, ID: repository,
Text: "publishing", Text: "publishing",
Status: progress.Working, Status: progress.Working,
}) })
if !s.dryRun {
err = resolver.Push(ctx, named, v1.Descriptor{ err = resolver.Push(ctx, named, v1.Descriptor{
MediaType: v1.MediaTypeImageManifest, MediaType: v1.MediaTypeImageManifest,
Digest: digest.FromString(string(imageManifest)), Digest: digest.FromString(string(imageManifest)),
@ -141,6 +143,7 @@ func (s *composeService) publish(ctx context.Context, project *types.Project, re
}) })
return err return err
} }
}
w.Event(progress.Event{ w.Event(progress.Event{
ID: repository, ID: repository,
Text: "published", Text: "published",