diff --git a/pkg/executor/build.go b/pkg/executor/build.go index 224992b3d..8db06a0c9 100644 --- a/pkg/executor/build.go +++ b/pkg/executor/build.go @@ -487,11 +487,7 @@ func (s *stageBuilder) saveLayerToImage(layer v1.Layer, createdBy string) error return err } -func CalculateDependencies(opts *config.KanikoOptions) (map[int][]string, error) { - stages, err := dockerfile.Stages(opts) - if err != nil { - return nil, err - } +func CalculateDependencies(stages []config.KanikoStage, opts *config.KanikoOptions) (map[int][]string, error) { images := []v1.Image{} depGraph := map[int][]string{} for _, s := range stages { @@ -559,15 +555,18 @@ func DoBuild(opts *config.KanikoOptions) (v1.Image, error) { if err != nil { return nil, err } + + // TODO is this even used? if err := util.GetExcludedFiles(opts.DockerfilePath, opts.SrcContext); err != nil { return nil, err } + // Some stages may refer to other random images, not previous stages if err := fetchExtraStages(stages, opts); err != nil { return nil, err } - crossStageDependencies, err := CalculateDependencies(opts) + crossStageDependencies, err := CalculateDependencies(stages, opts) if err != nil { return nil, err } diff --git a/pkg/executor/build_test.go b/pkg/executor/build_test.go index e52961e8c..121d01bd7 100644 --- a/pkg/executor/build_test.go +++ b/pkg/executor/build_test.go @@ -322,8 +322,12 @@ COPY --from=stage2 /bar /bat opts := &config.KanikoOptions{ DockerfilePath: f.Name(), } - - got, err := CalculateDependencies(opts) + testStages, err := dockerfile.Stages(opts) + if err != nil { + t.Errorf("Failed to parse test dockerfile to stages: %s", err) + } + + got, err := CalculateDependencies(testStages, opts) if err != nil { t.Errorf("got error: %s,", err) }