From fdb91a733250c8ee9a63ab240a90329a56873365 Mon Sep 17 00:00:00 2001 From: Tom Chauveau Date: Mon, 7 Jun 2021 23:23:16 +0200 Subject: [PATCH] Refactor random generation into a definition to make it reusable Signed-off-by: Tom Chauveau --- .../aws/ecr/.dagger/env/default/plan/ecr.cue | 10 ++-- .../ecr/.dagger/env/default/plan/random.cue | 38 +++++++++------ tests/stdlib/docker/push-pull/push-pull.cue | 4 +- tests/stdlib/docker/push-pull/random.cue | 38 +++++++++------ .../.dagger/env/default/plan/passphrase.cue | 18 +++++--- .../.dagger/env/default/plan/random.cue | 39 ++++++++++------ .../.dagger/env/default/plan/random.cue | 39 ++++++++++------ .../.dagger/env/default/plan/simple.cue | 16 ++++--- .../.dagger/env/default/plan/random.cue | 39 ++++++++++------ .../env/default/plan/wrong-password.cue | 18 +++++--- .../gcp/gcr/.dagger/env/default/plan/gcr.cue | 10 ++-- .../gcr/.dagger/env/default/plan/random.cue | 37 ++++++++++----- tests/stdlib/kubernetes/helm/helm.cue | 8 +++- tests/stdlib/kubernetes/helm/random.cue | 38 +++++++++------ tests/stdlib/kubernetes/kubernetes.cue | 4 +- tests/stdlib/kubernetes/random.cue | 38 +++++++++------ .../.dagger/env/default/plan/netlify.cue | 6 ++- .../.dagger/env/default/plan/random.cue | 37 ++++++++++----- tests/stdlib/netlify/netlify.cue | 46 ------------------- tests/stdlib/netlify/random.cue | 21 --------- 20 files changed, 288 insertions(+), 216 deletions(-) delete mode 100644 tests/stdlib/netlify/netlify.cue delete mode 100644 tests/stdlib/netlify/random.cue diff --git a/tests/stdlib/aws/ecr/.dagger/env/default/plan/ecr.cue b/tests/stdlib/aws/ecr/.dagger/env/default/plan/ecr.cue index ca0e77db..c093a895 100644 --- a/tests/stdlib/aws/ecr/.dagger/env/default/plan/ecr.cue +++ b/tests/stdlib/aws/ecr/.dagger/env/default/plan/ecr.cue @@ -11,8 +11,10 @@ TestConfig: awsConfig: aws.#Config & { } TestECR: { + random: #Random & {} + repository: "125635003186.dkr.ecr.\(TestConfig.awsConfig.region).amazonaws.com/dagger-ci" - tag: "test-ecr-\(random)" + tag: "test-ecr-\(random.out)" creds: ecr.#Credentials & { config: TestConfig.awsConfig @@ -25,7 +27,7 @@ TestECR: { op.#DockerBuild & { dockerfile: """ FROM alpine - RUN echo \(random) > /test + RUN echo \(random.out) > /test """ }, @@ -61,7 +63,7 @@ TestECR: { op.#Exec & { always: true args: [ - "sh", "-c", "test $(cat test) = \(random)", + "sh", "-c", "test $(cat test) = \(random.out)", ] }, ] @@ -76,7 +78,7 @@ TestECR: { op.#DockerBuild & { dockerfile: #""" FROM \#(push.ref) - RUN test $(cat test) = \#(random) + RUN test $(cat test) = \#(random.out) """# }, ] diff --git a/tests/stdlib/aws/ecr/.dagger/env/default/plan/random.cue b/tests/stdlib/aws/ecr/.dagger/env/default/plan/random.cue index 4076cc54..522cbd34 100644 --- a/tests/stdlib/aws/ecr/.dagger/env/default/plan/random.cue +++ b/tests/stdlib/aws/ecr/.dagger/env/default/plan/random.cue @@ -1,21 +1,33 @@ package ecr import ( + "strconv" + "dagger.io/alpine" "dagger.io/dagger/op" ) -// Generate a random number -random: { - string - #up: [ - op.#Load & {from: alpine.#Image}, - op.#Exec & { - always: true - args: ["sh", "-c", "cat /dev/urandom | tr -dc 'a-z' | fold -w 10 | head -n 1 | tr -d '\n' > /rand"] - }, - op.#Export & { - source: "/rand" - }, - ] +#Random: { + size: *12 | number + + out: { + string + + #up: [ + op.#Load & {from: alpine.#Image}, + + op.#Exec & { + always: true + args: ["sh", "-c", #""" + tr -cd '[:alpha:]' < /dev/urandom | fold -w "$SIZE" | head -n 1 | tr '[A-Z]' '[a-z]' | tr -d '\n' > /rand + """#, + ] + env: SIZE: strconv.FormatInt(size, 10) + }, + + op.#Export & { + source: "/rand" + }, + ] + } } diff --git a/tests/stdlib/docker/push-pull/push-pull.cue b/tests/stdlib/docker/push-pull/push-pull.cue index 40b72be3..b3a0b7d9 100644 --- a/tests/stdlib/docker/push-pull/push-pull.cue +++ b/tests/stdlib/docker/push-pull/push-pull.cue @@ -15,7 +15,9 @@ registry: { } TestPushAndPull: { - ref: "daggerio/ci-test:\(random)" + random: #Random & {} + + ref: "daggerio/ci-test:\(random.out)" // Create image image: docker.#ImageFromDockerfile & { diff --git a/tests/stdlib/docker/push-pull/random.cue b/tests/stdlib/docker/push-pull/random.cue index cd7e4187..1c30f6fc 100644 --- a/tests/stdlib/docker/push-pull/random.cue +++ b/tests/stdlib/docker/push-pull/random.cue @@ -1,21 +1,33 @@ package docker import ( + "strconv" + "dagger.io/alpine" "dagger.io/dagger/op" ) -// Generate a random number -random: { - string - #up: [ - op.#Load & {from: alpine.#Image}, - op.#Exec & { - always: true - args: ["sh", "-c", "cat /dev/urandom | tr -dc 'a-z' | fold -w 10 | head -n 1 | tr -d '\n' > /rand"] - }, - op.#Export & { - source: "/rand" - }, - ] +#Random: { + size: *12 | number + + out: { + string + + #up: [ + op.#Load & {from: alpine.#Image}, + + op.#Exec & { + always: true + args: ["sh", "-c", #""" + tr -cd '[:alpha:]' < /dev/urandom | fold -w "$SIZE" | head -n 1 | tr '[A-Z]' '[a-z]' | tr -d '\n' > /rand + """#, + ] + env: SIZE: strconv.FormatInt(size, 10) + }, + + op.#Export & { + source: "/rand" + }, + ] + } } diff --git a/tests/stdlib/docker/run/passphrase/.dagger/env/default/plan/passphrase.cue b/tests/stdlib/docker/run/passphrase/.dagger/env/default/plan/passphrase.cue index 49c04e52..e15adc7c 100644 --- a/tests/stdlib/docker/run/passphrase/.dagger/env/default/plan/passphrase.cue +++ b/tests/stdlib/docker/run/passphrase/.dagger/env/default/plan/passphrase.cue @@ -9,11 +9,15 @@ key: dagger.#Secret @dagger(input) passphrase: dagger.#Secret @dagger(input) user: string @dagger(input) -TestRun: run: docker.#Run & { - host: "143.198.64.230" - ref: "nginx:alpine" - "user": user - "passphrase": passphrase - name: "daggerci-test-simple-\(random)" - "key": key +TestRun: { + random: #Random & {} + + run: docker.#Run & { + host: "143.198.64.230" + ref: "nginx:alpine" + "user": user + "passphrase": passphrase + name: "daggerci-test-simple-\(random.out)" + "key": key + } } diff --git a/tests/stdlib/docker/run/passphrase/.dagger/env/default/plan/random.cue b/tests/stdlib/docker/run/passphrase/.dagger/env/default/plan/random.cue index bd7acb33..1c30f6fc 100644 --- a/tests/stdlib/docker/run/passphrase/.dagger/env/default/plan/random.cue +++ b/tests/stdlib/docker/run/passphrase/.dagger/env/default/plan/random.cue @@ -1,20 +1,33 @@ package docker import ( - "dagger.io/dagger/op" + "strconv" + "dagger.io/alpine" + "dagger.io/dagger/op" ) -random: { - string - #up: [ - op.#Load & {from: alpine.#Image}, - op.#Exec & { - always: true - args: ["sh", "-c", "cat /dev/urandom | tr -dc 'a-z' | fold -w 10 | head -n 1 | tr -d '\n' > /rand"] - }, - op.#Export & { - source: "/rand" - }, - ] +#Random: { + size: *12 | number + + out: { + string + + #up: [ + op.#Load & {from: alpine.#Image}, + + op.#Exec & { + always: true + args: ["sh", "-c", #""" + tr -cd '[:alpha:]' < /dev/urandom | fold -w "$SIZE" | head -n 1 | tr '[A-Z]' '[a-z]' | tr -d '\n' > /rand + """#, + ] + env: SIZE: strconv.FormatInt(size, 10) + }, + + op.#Export & { + source: "/rand" + }, + ] + } } diff --git a/tests/stdlib/docker/run/simple/.dagger/env/default/plan/random.cue b/tests/stdlib/docker/run/simple/.dagger/env/default/plan/random.cue index bd7acb33..1c30f6fc 100644 --- a/tests/stdlib/docker/run/simple/.dagger/env/default/plan/random.cue +++ b/tests/stdlib/docker/run/simple/.dagger/env/default/plan/random.cue @@ -1,20 +1,33 @@ package docker import ( - "dagger.io/dagger/op" + "strconv" + "dagger.io/alpine" + "dagger.io/dagger/op" ) -random: { - string - #up: [ - op.#Load & {from: alpine.#Image}, - op.#Exec & { - always: true - args: ["sh", "-c", "cat /dev/urandom | tr -dc 'a-z' | fold -w 10 | head -n 1 | tr -d '\n' > /rand"] - }, - op.#Export & { - source: "/rand" - }, - ] +#Random: { + size: *12 | number + + out: { + string + + #up: [ + op.#Load & {from: alpine.#Image}, + + op.#Exec & { + always: true + args: ["sh", "-c", #""" + tr -cd '[:alpha:]' < /dev/urandom | fold -w "$SIZE" | head -n 1 | tr '[A-Z]' '[a-z]' | tr -d '\n' > /rand + """#, + ] + env: SIZE: strconv.FormatInt(size, 10) + }, + + op.#Export & { + source: "/rand" + }, + ] + } } diff --git a/tests/stdlib/docker/run/simple/.dagger/env/default/plan/simple.cue b/tests/stdlib/docker/run/simple/.dagger/env/default/plan/simple.cue index 3d95e5a4..ce336e31 100644 --- a/tests/stdlib/docker/run/simple/.dagger/env/default/plan/simple.cue +++ b/tests/stdlib/docker/run/simple/.dagger/env/default/plan/simple.cue @@ -7,10 +7,14 @@ import ( key: dagger.#Secret @dagger(input) -TestRun: run: docker.#Run & { - host: "143.198.64.230" - ref: "nginx:alpine" - user: "root" - name: "daggerci-test-simple-\(random)" - "key": key +TestRun: { + random: #Random & {} + + run: docker.#Run & { + host: "143.198.64.230" + ref: "nginx:alpine" + user: "root" + name: "daggerci-test-simple-\(random.out)" + "key": key + } } diff --git a/tests/stdlib/docker/run/wrong-passphrase/.dagger/env/default/plan/random.cue b/tests/stdlib/docker/run/wrong-passphrase/.dagger/env/default/plan/random.cue index bd7acb33..1c30f6fc 100644 --- a/tests/stdlib/docker/run/wrong-passphrase/.dagger/env/default/plan/random.cue +++ b/tests/stdlib/docker/run/wrong-passphrase/.dagger/env/default/plan/random.cue @@ -1,20 +1,33 @@ package docker import ( - "dagger.io/dagger/op" + "strconv" + "dagger.io/alpine" + "dagger.io/dagger/op" ) -random: { - string - #up: [ - op.#Load & {from: alpine.#Image}, - op.#Exec & { - always: true - args: ["sh", "-c", "cat /dev/urandom | tr -dc 'a-z' | fold -w 10 | head -n 1 | tr -d '\n' > /rand"] - }, - op.#Export & { - source: "/rand" - }, - ] +#Random: { + size: *12 | number + + out: { + string + + #up: [ + op.#Load & {from: alpine.#Image}, + + op.#Exec & { + always: true + args: ["sh", "-c", #""" + tr -cd '[:alpha:]' < /dev/urandom | fold -w "$SIZE" | head -n 1 | tr '[A-Z]' '[a-z]' | tr -d '\n' > /rand + """#, + ] + env: SIZE: strconv.FormatInt(size, 10) + }, + + op.#Export & { + source: "/rand" + }, + ] + } } diff --git a/tests/stdlib/docker/run/wrong-passphrase/.dagger/env/default/plan/wrong-password.cue b/tests/stdlib/docker/run/wrong-passphrase/.dagger/env/default/plan/wrong-password.cue index 229c748f..6cb17bbf 100644 --- a/tests/stdlib/docker/run/wrong-passphrase/.dagger/env/default/plan/wrong-password.cue +++ b/tests/stdlib/docker/run/wrong-passphrase/.dagger/env/default/plan/wrong-password.cue @@ -10,11 +10,15 @@ key: dagger.#Secret @dagger(input) passphrase: dagger.#Secret @dagger(input) user: string @dagger(input) -TestRun: run: docker.#Run & { - host: "143.198.64.230" - ref: "nginx:alpine" - "user": user - "passphrase": passphrase - name: "daggerci-test-simple-\(random)" - "key": key +TestRun: { + random: #Random & {} + + run: docker.#Run & { + host: "143.198.64.230" + ref: "nginx:alpine" + "user": user + "passphrase": passphrase + name: "daggerci-test-simple-\(random.out)" + "key": key + } } diff --git a/tests/stdlib/gcp/gcr/.dagger/env/default/plan/gcr.cue b/tests/stdlib/gcp/gcr/.dagger/env/default/plan/gcr.cue index 68d056b5..59252816 100644 --- a/tests/stdlib/gcp/gcr/.dagger/env/default/plan/gcr.cue +++ b/tests/stdlib/gcp/gcr/.dagger/env/default/plan/gcr.cue @@ -9,8 +9,10 @@ import ( TestConfig: gcpConfig: gcp.#Config TestGCR: { + random: #Random & {} + repository: "gcr.io/dagger-ci/test" - tag: "test-gcr-\(random)" + tag: "test-gcr-\(random.out)" creds: gcr.#Credentials & { config: TestConfig.gcpConfig @@ -23,7 +25,7 @@ TestGCR: { op.#DockerBuild & { dockerfile: """ FROM alpine - RUN echo \(random) > /test + RUN echo \(random.out) > /test """ }, @@ -59,7 +61,7 @@ TestGCR: { op.#Exec & { always: true args: [ - "sh", "-c", "test $(cat test) = \(random)", + "sh", "-c", "test $(cat test) = \(random.out)", ] }, ] @@ -74,7 +76,7 @@ TestGCR: { op.#DockerBuild & { dockerfile: #""" FROM \#(push.ref) - RUN test $(cat test) = \#(random) + RUN test $(cat test) = \#(random.out) """# }, ] diff --git a/tests/stdlib/gcp/gcr/.dagger/env/default/plan/random.cue b/tests/stdlib/gcp/gcr/.dagger/env/default/plan/random.cue index cac0cf10..a17a9404 100644 --- a/tests/stdlib/gcp/gcr/.dagger/env/default/plan/random.cue +++ b/tests/stdlib/gcp/gcr/.dagger/env/default/plan/random.cue @@ -1,20 +1,33 @@ package gcr import ( + "strconv" + "dagger.io/alpine" "dagger.io/dagger/op" ) -// 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" - }, - ] +#Random: { + size: *12 | number + + out: { + string + + #up: [ + op.#Load & {from: alpine.#Image}, + + op.#Exec & { + always: true + args: ["sh", "-c", #""" + tr -cd '[:alpha:]' < /dev/urandom | fold -w "$SIZE" | head -n 1 | tr '[A-Z]' '[a-z]' | tr -d '\n' > /rand + """#, + ] + env: SIZE: strconv.FormatInt(size, 10) + }, + + op.#Export & { + source: "/rand" + }, + ] + } } diff --git a/tests/stdlib/kubernetes/helm/helm.cue b/tests/stdlib/kubernetes/helm/helm.cue index e9a3f839..8f8580d2 100644 --- a/tests/stdlib/kubernetes/helm/helm.cue +++ b/tests/stdlib/kubernetes/helm/helm.cue @@ -11,9 +11,11 @@ kubeconfig: dagger.#Secret @dagger(input) // Deploy user local chart TestHelmSimpleChart: { + random: #Random & {} + // Deploy chart deploy: helm.#Chart & { - name: "dagger-test-helm-simple-chart-\(random)" + name: "dagger-test-helm-simple-chart-\(random.out)" namespace: "dagger-test" "kubeconfig": kubeconfig chartSource: dagger.#Artifact @@ -28,9 +30,11 @@ TestHelmSimpleChart: { // Deploy remote chart TestHelmRepoChart: { + random: #Random & {} + // Deploy chart deploy: helm.#Chart & { - name: "dagger-test-helm-repository-\(random)" + name: "dagger-test-helm-repository-\(random.out)" namespace: "dagger-test" "kubeconfig": kubeconfig chart: "redis" diff --git a/tests/stdlib/kubernetes/helm/random.cue b/tests/stdlib/kubernetes/helm/random.cue index b4ede15d..a8a815ec 100644 --- a/tests/stdlib/kubernetes/helm/random.cue +++ b/tests/stdlib/kubernetes/helm/random.cue @@ -1,21 +1,33 @@ package helm import ( + "strconv" + "dagger.io/alpine" "dagger.io/dagger/op" ) -// Generate a random number -random: { - string - #up: [ - op.#Load & {from: alpine.#Image}, - op.#Exec & { - always: true - args: ["sh", "-c", "cat /dev/urandom | tr -dc 'a-z' | fold -w 10 | head -n 1 | tr -d '\n' > /rand"] - }, - op.#Export & { - source: "/rand" - }, - ] +#Random: { + size: *12 | number + + out: { + string + + #up: [ + op.#Load & {from: alpine.#Image}, + + op.#Exec & { + always: true + args: ["sh", "-c", #""" + tr -cd '[:alpha:]' < /dev/urandom | fold -w "$SIZE" | head -n 1 | tr '[A-Z]' '[a-z]' | tr -d '\n' > /rand + """#, + ] + env: SIZE: strconv.FormatInt(size, 10) + }, + + op.#Export & { + source: "/rand" + }, + ] + } } diff --git a/tests/stdlib/kubernetes/kubernetes.cue b/tests/stdlib/kubernetes/kubernetes.cue index 123f26ba..6a5e6f45 100644 --- a/tests/stdlib/kubernetes/kubernetes.cue +++ b/tests/stdlib/kubernetes/kubernetes.cue @@ -11,11 +11,13 @@ import ( kubeconfig: dagger.#Secret @dagger(input) TestKubeApply: { + random: #Random & {} + // Pod spec kubeSrc: { apiVersion: "v1" kind: "Pod" - metadata: name: "kube-test-\(random)" + metadata: name: "kube-test-\(random.out)" spec: { restartPolicy: "Never" containers: [{ diff --git a/tests/stdlib/kubernetes/random.cue b/tests/stdlib/kubernetes/random.cue index 6e4b0a51..51bb53c5 100644 --- a/tests/stdlib/kubernetes/random.cue +++ b/tests/stdlib/kubernetes/random.cue @@ -1,21 +1,33 @@ package kubernetes import ( + "strconv" + "dagger.io/alpine" "dagger.io/dagger/op" ) -// Generate a random number -random: { - string - #up: [ - op.#Load & {from: alpine.#Image}, - op.#Exec & { - always: true - args: ["sh", "-c", "cat /dev/urandom | tr -dc 'a-z' | fold -w 10 | head -n 1 | tr -d '\n' > /rand"] - }, - op.#Export & { - source: "/rand" - }, - ] +#Random: { + size: *12 | number + + out: { + string + + #up: [ + op.#Load & {from: alpine.#Image}, + + op.#Exec & { + always: true + args: ["sh", "-c", #""" + tr -cd '[:alpha:]' < /dev/urandom | fold -w "$SIZE" | head -n 1 | tr '[A-Z]' '[a-z]' | tr -d '\n' > /rand + """#, + ] + env: SIZE: strconv.FormatInt(size, 10) + }, + + op.#Export & { + source: "/rand" + }, + ] + } } diff --git a/tests/stdlib/netlify/.dagger/env/default/plan/netlify.cue b/tests/stdlib/netlify/.dagger/env/default/plan/netlify.cue index 798a2f35..ea6c7ae9 100644 --- a/tests/stdlib/netlify/.dagger/env/default/plan/netlify.cue +++ b/tests/stdlib/netlify/.dagger/env/default/plan/netlify.cue @@ -7,10 +7,12 @@ import ( ) TestNetlify: { + random: #Random & {} + // Generate a website containing the random number html: #up: [ op.#WriteFile & { - content: random + content: random.out dest: "index.html" }, ] @@ -38,7 +40,7 @@ TestNetlify: { "pipefail", "-c", #""" - test "$(curl \#(deploy.deployUrl))" = "\#(random)" + test "$(curl \#(deploy.deployUrl))" = "\#(random.out)" """#, ] }, diff --git a/tests/stdlib/netlify/.dagger/env/default/plan/random.cue b/tests/stdlib/netlify/.dagger/env/default/plan/random.cue index a9c5c710..53c78a18 100644 --- a/tests/stdlib/netlify/.dagger/env/default/plan/random.cue +++ b/tests/stdlib/netlify/.dagger/env/default/plan/random.cue @@ -1,20 +1,33 @@ package netlify import ( + "strconv" + "dagger.io/alpine" "dagger.io/dagger/op" ) -// 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" - }, - ] +#Random: { + size: *12 | number + + out: { + string + + #up: [ + op.#Load & {from: alpine.#Image}, + + op.#Exec & { + always: true + args: ["sh", "-c", #""" + tr -cd '[:alpha:]' < /dev/urandom | fold -w "$SIZE" | head -n 1 | tr '[A-Z]' '[a-z]' | tr -d '\n' > /rand + """#, + ] + env: SIZE: strconv.FormatInt(size, 10) + }, + + op.#Export & { + source: "/rand" + }, + ] + } } diff --git a/tests/stdlib/netlify/netlify.cue b/tests/stdlib/netlify/netlify.cue deleted file mode 100644 index 1511f15f..00000000 --- a/tests/stdlib/netlify/netlify.cue +++ /dev/null @@ -1,46 +0,0 @@ -package netlify - -import ( - "dagger.io/dagger/op" - "dagger.io/alpine" - "dagger.io/netlify" -) - -TestNetlify: { - // Generate a website containing the random number - html: #up: [ - op.#WriteFile & { - content: random - dest: "index.html" - }, - ] - - // Deploy to netlify - deploy: netlify.#Site & { - contents: html - name: "dagger-test" - } - - // Check if the deployed site has the random marker - check: #up: [ - op.#Load & { - from: alpine.#Image & { - package: bash: "=~5.1" - package: curl: true - } - }, - op.#Exec & { - args: [ - "/bin/bash", - "--noprofile", - "--norc", - "-eo", - "pipefail", - "-c", - #""" - test "$(curl \#(deploy.deployUrl))" = "\#(random)" - """#, - ] - }, - ] -} diff --git a/tests/stdlib/netlify/random.cue b/tests/stdlib/netlify/random.cue deleted file mode 100644 index f0fe5eae..00000000 --- a/tests/stdlib/netlify/random.cue +++ /dev/null @@ -1,21 +0,0 @@ -package netlify - -import ( - "dagger.io/alpine" - "dagger.io/dagger/op" -) - -// Generate a random number -random: { - string - #up: [ - op.#Load & {from: alpine.#Image}, - op.#Exec & { - always: true - args: ["sh", "-c", "cat /dev/urandom | tr -dc 'a-z' | fold -w 10 | head -n 1 | tr -d '\n' > /rand"] - }, - op.#Export & { - source: "/rand" - }, - ] -}