c276a8b8ba
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>
69 lines
1.4 KiB
CUE
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
|
|
}
|
|
}
|