Added structure tests to integration test to test ENV command

This commit is contained in:
Priya Wadhwa 2018-03-09 13:47:33 -08:00
parent ab0fc3802e
commit 76d5d3e2e2
No known key found for this signature in database
GPG Key ID: 0D0DAFD8F7AA73AE
3 changed files with 64 additions and 3 deletions

View File

@ -0,0 +1,5 @@
FROM gcr.io/distroless/base
ENV hey hey
ENV PATH /usr/local
ENV hey hello
ENV first=foo second=foo2

View File

@ -0,0 +1,11 @@
schemaVersion: '2.0.0'
metadataTest:
env:
- key: hey
value: hello
- key: PATH
value: /usr/local
- key: first
value: foo
- key: second
value: foo2

View File

@ -21,7 +21,7 @@ import (
"gopkg.in/yaml.v2"
)
var tests = []struct {
var fileTests = []struct {
description string
dockerfilePath string
configPath string
@ -51,6 +51,20 @@ var tests = []struct {
},
}
var structureTests = []struct {
description string
dockerfilePath string
structureTestYamlPath string
repo string
}{
{
description: "test env",
dockerfilePath: "/workspace/integration_tests/dockerfiles/Dockerfile_test_env",
repo: "test-env",
structureTestYamlPath: "/workspace/integration_tests/dockerfiles/test_env.yaml",
},
}
type step struct {
Name string
Args []string
@ -82,15 +96,23 @@ func main() {
Name: ubuntuImage,
Args: []string{"chmod", "+x", "container-diff-linux-amd64"},
}
structureTestsStep := step{
Name: "gcr.io/cloud-builders/gsutil",
Args: []string{"cp", "gs://container-structure-test/latest/container-structure-test", "."},
}
structureTestPermissions := step{
Name: ubuntuImage,
Args: []string{"chmod", "+x", "container-structure-test"},
}
// Build executor image
buildExecutorImage := step{
Name: dockerImage,
Args: []string{"build", "-t", executorImage, "-f", "integration_tests/executor/Dockerfile", "."},
}
y := testyaml{
Steps: []step{containerDiffStep, containerDiffPermissions, buildExecutorImage},
Steps: []step{containerDiffStep, containerDiffPermissions, structureTestsStep, structureTestPermissions, buildExecutorImage},
}
for _, test := range tests {
for _, test := range fileTests {
// First, build the image with docker
dockerImageTag := testRepo + dockerPrefix + test.repo
dockerBuild := step{
@ -133,6 +155,29 @@ func main() {
y.Steps = append(y.Steps, dockerBuild, kbuild, pullKbuildImage, containerDiff, catContainerDiffOutput, compareOutputs)
}
for _, test := range structureTests {
// Build the image with kbuild
kbuildImage := testRepo + kbuildPrefix + test.repo
kbuild := step{
Name: executorImage,
Args: []string{executorCommand, "--destination", kbuildImage, "--dockerfile", test.dockerfilePath},
}
// Pull the kbuild image
pullKbuildImage := step{
Name: dockerImage,
Args: []string{"pull", kbuildImage},
}
// Run structure tests on the image
args := "container-structure-test -image " + kbuildImage + " " + test.structureTestYamlPath
structureTest := step{
Name: ubuntuImage,
Args: []string{"sh", "-c", args},
Env: []string{"PATH=/workspace:/bin"},
}
y.Steps = append(y.Steps, kbuild, pullKbuildImage, structureTest)
}
d, _ := yaml.Marshal(&y)
fmt.Println(string(d))
}