This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
dagger/tests/tasks/push/push.cue
Helder Correia c276a8b8ba
Make env in ImageConfig a map
Fields in CUE were renamed to the lowercase version of Dockerfile instructions.

There's now opportunity to make other fields simpler to use (e.g., healthcheck), this commit is focused on env.

Signed-off-by: Helder Correia <174525+helderco@users.noreply.github.com>
2022-01-26 17:12:08 -01:00

69 lines
1.4 KiB
CUE

package main
import (
"strings"
"dagger.io/dagger/engine"
)
engine.#Plan & {
inputs: secrets: dockerHubToken: command: {
name: "sops"
args: ["exec-env", "../../secrets_sops.yaml", "echo $DOCKERHUB_TOKEN"]
}
#auth: [{
target: "daggerio/ci-test:private-pull"
username: "daggertest"
secret: inputs.secrets.dockerHubToken.contents
}]
actions: {
randomString: {
baseImage: engine.#Pull & {
source: "alpine:3.15.0@sha256:e7d88de73db3d3fd9b2d63aa7f447a10fd0220b7cbf39803c803f2af9ba256b3"
}
image: engine.#Exec & {
input: baseImage.output
args: [
"sh", "-c", "echo -n $RANDOM > /output.txt",
]
}
outputFile: engine.#ReadFile & {
input: image.output
path: "/output.txt"
}
output: outputFile.contents
}
// Push image with random content
push: engine.#Push & {
dest: "daggerio/ci-test:\(randomString.output)"
input: randomString.image.output
config: env: FOO: randomString.output
auth: #auth
}
// Pull same image and check the content
pull: engine.#Pull & {
source: "daggerio/ci-test:\(randomString.output)"
auth: #auth
} & {
// check digest
digest: strings.Split(push.result, "@")[1]
// check image config
config: env: FOO: randomString.output
}
pullOutputFile: engine.#ReadFile & {
input: pull.output
path: "/output.txt"
}
// Check output file in the pulled image
pullContent: string & pullOutputFile.contents & randomString.contents
}
}