package docker import ( "alpha.dagger.io/dagger/op" "alpha.dagger.io/dagger" "alpha.dagger.io/alpine" "alpha.dagger.io/random" ) TestRegistry: { username: string @dagger(input) secret: dagger.#Secret @dagger(input) } #TestGetSecret: { secret: dagger.#Artifact out: { string #up: [ op.#Load & {from: alpine.#Image}, op.#Exec & { always: true args: ["sh", "-c", "cp /input/secret /secret"] mount: "/input/secret": "secret": secret }, op.#Export & { source: "/secret" }, ] } } TestPush: { // Generate a random string // Seed is used to force buildkit execution and not simply use a previous generated string. tag: random.#String & {seed: "docker push"} target: "daggerio/ci-test:\(tag.out)" secret: #TestGetSecret & { secret: TestRegistry.secret } image: #ImageFromDockerfile & { dockerfile: """ FROM alpine RUN echo "test" > /test.txt """ context: "" } push: #Push & { "target": target source: image auth: { username: TestRegistry.username "secret": secret.out } } }