Skip to content

Commit f0ca0ab

Browse files
refactor: docker build BuildContext field (#1914)
The old Container input parameter was not flexible enough Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
1 parent 73d5f78 commit f0ca0ab

File tree

3 files changed

+18
-14
lines changed

3 files changed

+18
-14
lines changed

pkg/container/container_types.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,11 @@ type Container interface {
5353

5454
// NewDockerBuildExecutorInput the input for the NewDockerBuildExecutor function
5555
type NewDockerBuildExecutorInput struct {
56-
ContextDir string
57-
Dockerfile string
58-
Container Container
59-
ImageTag string
60-
Platform string
56+
ContextDir string
57+
Dockerfile string
58+
BuildContext io.Reader
59+
ImageTag string
60+
Platform string
6161
}
6262

6363
// NewDockerPullExecutorInput the input for the NewDockerPullExecutor function

pkg/container/docker_build.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ func NewDockerBuildExecutor(input NewDockerBuildExecutorInput) common.Executor {
4848
Dockerfile: input.Dockerfile,
4949
}
5050
var buildContext io.ReadCloser
51-
if input.Container != nil {
52-
buildContext, err = input.Container.GetContainerArchive(ctx, input.ContextDir+"/.")
51+
if input.BuildContext != nil {
52+
buildContext = io.NopCloser(input.BuildContext)
5353
} else {
5454
buildContext, err = createBuildContext(ctx, input.ContextDir, input.Dockerfile)
5555
}

pkg/runner/action.go

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -257,16 +257,20 @@ func execAsDocker(ctx context.Context, step actionStep, actionName string, based
257257

258258
if !correctArchExists || rc.Config.ForceRebuild {
259259
logger.Debugf("image '%s' for architecture '%s' will be built from context '%s", image, rc.Config.ContainerArchitecture, contextDir)
260-
var actionContainer container.Container
260+
var buildContext io.ReadCloser
261261
if localAction {
262-
actionContainer = rc.JobContainer
262+
buildContext, err = rc.JobContainer.GetContainerArchive(ctx, contextDir+"/.")
263+
if err != nil {
264+
return err
265+
}
266+
defer buildContext.Close()
263267
}
264268
prepImage = container.NewDockerBuildExecutor(container.NewDockerBuildExecutorInput{
265-
ContextDir: contextDir,
266-
Dockerfile: fileName,
267-
ImageTag: image,
268-
Container: actionContainer,
269-
Platform: rc.Config.ContainerArchitecture,
269+
ContextDir: contextDir,
270+
Dockerfile: fileName,
271+
ImageTag: image,
272+
BuildContext: buildContext,
273+
Platform: rc.Config.ContainerArchitecture,
270274
})
271275
} else {
272276
logger.Debugf("image '%s' for architecture '%s' already exists", image, rc.Config.ContainerArchitecture)

0 commit comments

Comments
 (0)