diff --git a/pkg/universe.dagger.io/docker/test/docker.bats b/pkg/universe.dagger.io/docker/test/docker.bats index 09240f03..2ab65b5d 100644 --- a/pkg/universe.dagger.io/docker/test/docker.bats +++ b/pkg/universe.dagger.io/docker/test/docker.bats @@ -11,3 +11,10 @@ setup() { run dagger up ./multi-nested-build-test.cue assert_failure } + +@test "docker.#Run" { + dagger up ./run-command-test.cue + dagger up ./run-script-test.cue + dagger up ./run-export-file-test.cue + dagger up ./run-export-directory-test.cue +} diff --git a/pkg/universe.dagger.io/docker/test/run-command-test.cue b/pkg/universe.dagger.io/docker/test/run-command-test.cue new file mode 100644 index 00000000..21dc4812 --- /dev/null +++ b/pkg/universe.dagger.io/docker/test/run-command-test.cue @@ -0,0 +1,29 @@ +package test + +import ( + "dagger.io/dagger" + "dagger.io/dagger/engine" + "universe.dagger.io/docker" + "universe.dagger.io/alpine" +) + +dagger.#Plan & { + actions: { + image: alpine.#Build + + run: docker.#Run & { + "image": image.output + cmd: { + name: "/bin/sh" + args: ["-c", "echo -n hello world >> /output.txt"] + } + } + + verify: engine.#ReadFile & { + input: run.output.rootfs + path: "/output.txt" + } & { + contents: "hello world" + } + } +} diff --git a/pkg/universe.dagger.io/docker/test/run-export-directory-test.cue b/pkg/universe.dagger.io/docker/test/run-export-directory-test.cue new file mode 100644 index 00000000..a27199a2 --- /dev/null +++ b/pkg/universe.dagger.io/docker/test/run-export-directory-test.cue @@ -0,0 +1,38 @@ +package test + +import ( + "dagger.io/dagger" + "dagger.io/dagger/engine" + "universe.dagger.io/docker" + "universe.dagger.io/alpine" +) + +dagger.#Plan & { + actions: { + image: alpine.#Build + + run: docker.#Run & { + "image": image.output + script: #""" + mkdir -p test + echo -n hello world >> /test/output.txt + """# + export: { + directories: "/test": _ + files: "/test/output.txt": _ & { + contents: "hello world" + } + } + } & { + completed: true + success: true + } + + verify: engine.#ReadFile & { + input: run.export.directories."/test".contents + path: "/output.txt" + } & { + contents: run.export.files."/test/output.txt".contents + } + } +} diff --git a/pkg/universe.dagger.io/docker/test/run-export-file-test.cue b/pkg/universe.dagger.io/docker/test/run-export-file-test.cue new file mode 100644 index 00000000..96629388 --- /dev/null +++ b/pkg/universe.dagger.io/docker/test/run-export-file-test.cue @@ -0,0 +1,23 @@ +package test + +import ( + "dagger.io/dagger" + "universe.dagger.io/docker" + "universe.dagger.io/alpine" +) + +dagger.#Plan & { + actions: { + image: alpine.#Build + + run: docker.#Run & { + "image": image.output + script: #""" + echo -n hello world >> /output.txt + """# + export: files: "/output.txt": _ & { + contents: "hello world" + } + } + } +} diff --git a/pkg/universe.dagger.io/docker/test/run-script-test.cue b/pkg/universe.dagger.io/docker/test/run-script-test.cue new file mode 100644 index 00000000..6a42d8df --- /dev/null +++ b/pkg/universe.dagger.io/docker/test/run-script-test.cue @@ -0,0 +1,29 @@ +package test + +import ( + "dagger.io/dagger" + "dagger.io/dagger/engine" + "universe.dagger.io/docker" + "universe.dagger.io/alpine" +) + +dagger.#Plan & { + actions: { + image: alpine.#Build + + run: docker.#Run & { + "image": image.output + script: #""" + echo -n $TEST_MESSAGE >> /output.txt + """# + env: TEST_MESSAGE: "hello world" + } + + verify: engine.#ReadFile & { + input: run.output.rootfs + path: "/output.txt" + } & { + contents: "hello world" + } + } +}