Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions integration/images.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,15 @@ func addCoverageFlags(flags []string) []string {
return append(flags, "-v", coverageDir+":/covdata", "-e", "GOCOVERDIR=/covdata")
}

// addKanikoEnvFlags passes the suite's feature-flag matrix (KanikoEnv) to the executor
// container. Every executor invocation must use it so all tests exercise the same flags.
func addKanikoEnvFlags(flags []string) []string {
for _, envVariable := range KanikoEnv {
flags = append(flags, "-e", envVariable)
}
return flags
}

// Arguments to build Dockerfiles with, used for both docker and kaniko builds
var argsMap = map[string][]string{
"Dockerfile_test_run": {"file=/file"},
Expand Down
16 changes: 16 additions & 0 deletions integration/integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,7 @@ func testGitBuildcontextHelper(t *testing.T, url string, commit string, branch s
dockerRunFlags := []string{"run", "--net=host"}
dockerRunFlags = addServiceAccountFlags(dockerRunFlags, config.serviceAccount)
dockerRunFlags = addCoverageFlags(dockerRunFlags)
dockerRunFlags = addKanikoEnvFlags(dockerRunFlags)
dockerRunFlags = append(dockerRunFlags, ExecutorImage,
"-f", dockerfile,
"-d", kanikoImage,
Expand Down Expand Up @@ -401,6 +402,7 @@ func TestGitBuildcontextSubPath(t *testing.T) {
dockerRunFlags := []string{"run", "--net=host"}
dockerRunFlags = addServiceAccountFlags(dockerRunFlags, config.serviceAccount)
dockerRunFlags = addCoverageFlags(dockerRunFlags)
dockerRunFlags = addKanikoEnvFlags(dockerRunFlags)
dockerRunFlags = append(
dockerRunFlags,
ExecutorImage,
Expand Down Expand Up @@ -445,6 +447,7 @@ func TestBuildViaRegistryMirrors(t *testing.T) {
dockerRunFlags := []string{"run", "--net=host"}
dockerRunFlags = addServiceAccountFlags(dockerRunFlags, config.serviceAccount)
dockerRunFlags = addCoverageFlags(dockerRunFlags)
dockerRunFlags = addKanikoEnvFlags(dockerRunFlags)
dockerRunFlags = append(dockerRunFlags, ExecutorImage,
"-f", dockerfile,
"-d", kanikoImage,
Expand Down Expand Up @@ -487,6 +490,7 @@ func TestBuildViaRegistryMap(t *testing.T) {
dockerRunFlags := []string{"run", "--net=host"}
dockerRunFlags = addServiceAccountFlags(dockerRunFlags, config.serviceAccount)
dockerRunFlags = addCoverageFlags(dockerRunFlags)
dockerRunFlags = addKanikoEnvFlags(dockerRunFlags)
dockerRunFlags = append(dockerRunFlags, ExecutorImage,
"-f", dockerfile,
"-d", kanikoImage,
Expand Down Expand Up @@ -514,6 +518,7 @@ func TestBuildSkipFallback(t *testing.T) {
dockerRunFlags := []string{"run", "--net=host"}
dockerRunFlags = addServiceAccountFlags(dockerRunFlags, config.serviceAccount)
dockerRunFlags = addCoverageFlags(dockerRunFlags)
dockerRunFlags = addKanikoEnvFlags(dockerRunFlags)
dockerRunFlags = append(dockerRunFlags, ExecutorImage,
"-f", dockerfile,
"-d", kanikoImage,
Expand Down Expand Up @@ -555,6 +560,7 @@ func TestKanikoDir(t *testing.T) {
dockerRunFlags := []string{"run", "--net=host"}
dockerRunFlags = addServiceAccountFlags(dockerRunFlags, config.serviceAccount)
dockerRunFlags = addCoverageFlags(dockerRunFlags)
dockerRunFlags = addKanikoEnvFlags(dockerRunFlags)
dockerRunFlags = append(dockerRunFlags, ExecutorImage,
"-f", dockerfile,
"-d", kanikoImage,
Expand Down Expand Up @@ -599,6 +605,7 @@ func TestBuildWithLabels(t *testing.T) {
dockerRunFlags := []string{"run", "--net=host"}
dockerRunFlags = addServiceAccountFlags(dockerRunFlags, config.serviceAccount)
dockerRunFlags = addCoverageFlags(dockerRunFlags)
dockerRunFlags = addKanikoEnvFlags(dockerRunFlags)
dockerRunFlags = append(dockerRunFlags, ExecutorImage,
"-f", dockerfile,
"-d", kanikoImage,
Expand Down Expand Up @@ -640,6 +647,7 @@ func TestBuildWithHTTPError(t *testing.T) {
dockerRunFlags := []string{"run", "--net=host"}
dockerRunFlags = addServiceAccountFlags(dockerRunFlags, config.serviceAccount)
dockerRunFlags = addCoverageFlags(dockerRunFlags)
dockerRunFlags = addKanikoEnvFlags(dockerRunFlags)
dockerRunFlags = append(dockerRunFlags, ExecutorImage,
"-f", dockerfile,
"-d", kanikoImage,
Expand Down Expand Up @@ -1140,6 +1148,7 @@ func TestExitCodePropagation(t *testing.T) {
}
dockerFlags = addServiceAccountFlags(dockerFlags, "")
dockerFlags = addCoverageFlags(dockerFlags)
dockerFlags = addKanikoEnvFlags(dockerFlags)
dockerFlags = append(dockerFlags, ExecutorImage,
"-c", "dir:///workspace/",
"-f", "./Dockerfile_exit_code_propagation",
Expand Down Expand Up @@ -1193,6 +1202,7 @@ func TestBuildWithAnnotations(t *testing.T) {
dockerRunFlags := []string{"run", "--net=host"}
dockerRunFlags = addServiceAccountFlags(dockerRunFlags, config.serviceAccount)
dockerRunFlags = addCoverageFlags(dockerRunFlags)
dockerRunFlags = addKanikoEnvFlags(dockerRunFlags)
dockerRunFlags = append(dockerRunFlags, ExecutorImage,
"-f", dockerfile,
"-d", kanikoImage,
Expand Down Expand Up @@ -1230,6 +1240,12 @@ func TestPushFromArtifact(t *testing.T) {
runExecutor := func(executorArgs ...string) {
t.Helper()
flags := []string{"run", "--rm", "--net=host", "-v", outFlag + ":/out"}
flags = addKanikoEnvFlags(flags)
// mz731 keeps OCI base layers verbatim on the direct push, but the
// docker-archive --tar-path writer rewrites them to docker mediatypes, so
// the push-from-artifact image would not match. Disable it (after the
// KanikoEnv default) so both paths re-tar the base identically.
flags = append(flags, "-e", "FF_KANIKO_REPRODUCIBLE_PRESERVE_BASE_LAYERS=0")
flags = addServiceAccountFlags(flags, config.serviceAccount)
flags = addCoverageFlags(flags)
flags = append(flags, ExecutorImage)
Expand Down
Loading