57 lines
900 B
CUE
57 lines
900 B
CUE
|
package main
|
||
|
|
||
|
import (
|
||
|
"dagger.io/dagger"
|
||
|
"dagger.io/alpine"
|
||
|
)
|
||
|
|
||
|
TestPushContainer: {
|
||
|
// Generate a random number
|
||
|
random: {
|
||
|
string
|
||
|
#compute: [
|
||
|
dagger.#Load & {from: alpine.#Image},
|
||
|
dagger.#Exec & {
|
||
|
args: ["sh", "-c", "echo -n $RANDOM > /rand"]
|
||
|
},
|
||
|
dagger.#Export & {
|
||
|
source: "/rand"
|
||
|
},
|
||
|
]
|
||
|
}
|
||
|
|
||
|
// Push an image with a random tag
|
||
|
push: {
|
||
|
ref: "daggerio/ci-test:\(random)"
|
||
|
#compute: [
|
||
|
dagger.#WriteFile & {
|
||
|
content: random
|
||
|
dest: "/rand"
|
||
|
},
|
||
|
dagger.#PushContainer & {
|
||
|
"ref": ref
|
||
|
},
|
||
|
]
|
||
|
}
|
||
|
|
||
|
// Pull the image back
|
||
|
pull: #compute: [
|
||
|
dagger.#FetchContainer & {
|
||
|
ref: push.ref
|
||
|
},
|
||
|
]
|
||
|
|
||
|
// Check the content
|
||
|
check: #compute: [
|
||
|
dagger.#Load & {from: alpine.#Image},
|
||
|
dagger.#Exec & {
|
||
|
args: [
|
||
|
"sh", "-c", #"""
|
||
|
test "$(cat /src/rand)" = "\#(random)"
|
||
|
"""#,
|
||
|
]
|
||
|
mount: "/src": from: pull
|
||
|
},
|
||
|
]
|
||
|
}
|