package docker import ( "dagger.io/dagger/op" "dagger.io/dagger" "dagger.io/docker" "dagger.io/alpine" "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: { tag: random.#String & {seed: "docker push and pull"} name: "daggerio/ci-test:\(tag.out)" secret: #TestGetSecret & { secret: TestRegistry.secret } image: docker.#ImageFromDockerfile & { dockerfile: """ FROM alpine RUN echo "test" > /test.txt """ context: "" } push: docker.#Push & { "name": name source: image auth: { username: TestRegistry.username "secret": secret.out } } }