stdlib: gcr support
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
This commit is contained in:
parent
5bd3349a27
commit
0f69f3a8af
44
stdlib/gcp/gcr/gcr.cue
Normal file
44
stdlib/gcp/gcr/gcr.cue
Normal file
@ -0,0 +1,44 @@
|
||||
package gcr
|
||||
|
||||
import (
|
||||
"dagger.io/dagger/op"
|
||||
"dagger.io/gcp"
|
||||
)
|
||||
|
||||
// Credentials retriever for GCR
|
||||
#Credentials: {
|
||||
// GCP Config
|
||||
config: gcp.#Config
|
||||
|
||||
// GCR credentials
|
||||
username: "oauth2accesstoken"
|
||||
secret: {
|
||||
string
|
||||
|
||||
#up: [
|
||||
op.#Load & {
|
||||
from: gcp.#GCloud & {
|
||||
"config": config
|
||||
}
|
||||
},
|
||||
op.#Exec & {
|
||||
always: true
|
||||
args: [
|
||||
"/bin/bash",
|
||||
"--noprofile",
|
||||
"--norc",
|
||||
"-eo",
|
||||
"pipefail",
|
||||
"-c",
|
||||
#"""
|
||||
printf $(gcloud auth print-access-token) > /token.txt
|
||||
"""#,
|
||||
]
|
||||
},
|
||||
|
||||
op.#Export & {
|
||||
source: "/token.txt"
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
@ -66,6 +66,12 @@ setup() {
|
||||
"$DAGGER" compute "$TESTDIR"/stdlib/gcp/gke --input-yaml "$TESTDIR"/stdlib/gcp/inputs.yaml
|
||||
}
|
||||
|
||||
@test "stdlib: gcp: gcr" {
|
||||
skip_unless_secrets_available "$TESTDIR"/stdlib/gcp/inputs.yaml
|
||||
|
||||
"$DAGGER" compute "$TESTDIR"/stdlib/gcp/gcr --input-yaml "$TESTDIR"/stdlib/gcp/inputs.yaml
|
||||
}
|
||||
|
||||
@test "stdlib: docker-build" {
|
||||
"$DAGGER" compute "$TESTDIR"/stdlib/docker/build/ --input-dir source="$TESTDIR"/stdlib/docker/build
|
||||
}
|
||||
|
96
tests/stdlib/gcp/gcr/gcr.cue
Normal file
96
tests/stdlib/gcp/gcr/gcr.cue
Normal file
@ -0,0 +1,96 @@
|
||||
package gcr
|
||||
|
||||
import (
|
||||
"dagger.io/gcp"
|
||||
"dagger.io/gcp/gcr"
|
||||
"dagger.io/alpine"
|
||||
"dagger.io/dagger/op"
|
||||
)
|
||||
|
||||
TestConfig: gcpConfig: gcp.#Config
|
||||
|
||||
// Generate a random number
|
||||
random: {
|
||||
string
|
||||
#up: [
|
||||
op.#Load & {from: alpine.#Image},
|
||||
op.#Exec & {
|
||||
args: ["sh", "-c", "cat /dev/urandom | tr -dc 'a-z' | fold -w 10 | head -n 1 | tr -d '\n' > /rand"]
|
||||
},
|
||||
op.#Export & {
|
||||
source: "/rand"
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
TestGCR: {
|
||||
repository: "gcr.io/dagger-ci/test"
|
||||
tag: "test-gcr-\(random)"
|
||||
|
||||
creds: gcr.#Credentials & {
|
||||
config: TestConfig.gcpConfig
|
||||
}
|
||||
|
||||
push: {
|
||||
ref: "\(repository):\(tag)"
|
||||
|
||||
#up: [
|
||||
op.#DockerBuild & {
|
||||
dockerfile: """
|
||||
FROM alpine
|
||||
RUN echo \(random) > /test
|
||||
"""
|
||||
},
|
||||
|
||||
op.#DockerLogin & {
|
||||
target: repository
|
||||
username: creds.username
|
||||
secret: creds.secret
|
||||
},
|
||||
|
||||
op.#PushContainer & {
|
||||
"ref": ref
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
pull: #up: [
|
||||
op.#DockerLogin & {
|
||||
target: push.ref
|
||||
username: creds.username
|
||||
secret: creds.secret
|
||||
},
|
||||
|
||||
op.#FetchContainer & {
|
||||
ref: push.ref
|
||||
},
|
||||
]
|
||||
|
||||
verify: #up: [
|
||||
op.#Load & {
|
||||
from: pull
|
||||
},
|
||||
|
||||
op.#Exec & {
|
||||
always: true
|
||||
args: [
|
||||
"sh", "-c", "test $(cat test) = \(random)",
|
||||
]
|
||||
},
|
||||
]
|
||||
|
||||
verifyBuild: #up: [
|
||||
op.#DockerLogin & {
|
||||
target: push.ref
|
||||
username: creds.username
|
||||
secret: creds.secret
|
||||
},
|
||||
|
||||
op.#DockerBuild & {
|
||||
dockerfile: #"""
|
||||
FROM \#(push.ref)
|
||||
RUN test $(cat test) = \#(random)
|
||||
"""#
|
||||
},
|
||||
]
|
||||
}
|
Reference in New Issue
Block a user