Added structure tests to integration test to test ENV command
This commit is contained in:
parent
ab0fc3802e
commit
76d5d3e2e2
|
|
@ -0,0 +1,5 @@
|
||||||
|
FROM gcr.io/distroless/base
|
||||||
|
ENV hey hey
|
||||||
|
ENV PATH /usr/local
|
||||||
|
ENV hey hello
|
||||||
|
ENV first=foo second=foo2
|
||||||
|
|
@ -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
|
||||||
|
|
@ -21,7 +21,7 @@ import (
|
||||||
"gopkg.in/yaml.v2"
|
"gopkg.in/yaml.v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
var tests = []struct {
|
var fileTests = []struct {
|
||||||
description string
|
description string
|
||||||
dockerfilePath string
|
dockerfilePath string
|
||||||
configPath 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 {
|
type step struct {
|
||||||
Name string
|
Name string
|
||||||
Args []string
|
Args []string
|
||||||
|
|
@ -82,15 +96,23 @@ func main() {
|
||||||
Name: ubuntuImage,
|
Name: ubuntuImage,
|
||||||
Args: []string{"chmod", "+x", "container-diff-linux-amd64"},
|
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
|
// Build executor image
|
||||||
buildExecutorImage := step{
|
buildExecutorImage := step{
|
||||||
Name: dockerImage,
|
Name: dockerImage,
|
||||||
Args: []string{"build", "-t", executorImage, "-f", "integration_tests/executor/Dockerfile", "."},
|
Args: []string{"build", "-t", executorImage, "-f", "integration_tests/executor/Dockerfile", "."},
|
||||||
}
|
}
|
||||||
y := testyaml{
|
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
|
// First, build the image with docker
|
||||||
dockerImageTag := testRepo + dockerPrefix + test.repo
|
dockerImageTag := testRepo + dockerPrefix + test.repo
|
||||||
dockerBuild := step{
|
dockerBuild := step{
|
||||||
|
|
@ -133,6 +155,29 @@ func main() {
|
||||||
y.Steps = append(y.Steps, dockerBuild, kbuild, pullKbuildImage, containerDiff, catContainerDiffOutput, compareOutputs)
|
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)
|
d, _ := yaml.Marshal(&y)
|
||||||
fmt.Println(string(d))
|
fmt.Println(string(d))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue