stdlib: Add GCS support

The interface and behavior is identical to S3.

Signed-off-by: Scott Lewis-Kelly <slewiskelly@slewiskel.ly>
This commit is contained in:
Scott Lewis-Kelly
2021-06-30 14:31:23 +10:00
committed by Andrea Luzzardi
parent c821622628
commit 635b9306b8
11 changed files with 274 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
package gcs
import (
"alpha.dagger.io/dagger"
"alpha.dagger.io/gcp"
)
TestConfig: gcpConfig: gcp.#Config
bucket: "dagger-ci"
TestDirectory: dagger.#Artifact
TestGCSObject: {
deploy: #Object & {
always: true
config: TestConfig.gcpConfig
source: TestDirectory
target: "gs://\(bucket)/"
}
verifyFile: #VerifyGCS & {
config: TestConfig.gcpConfig
target: deploy.target
file: "dirFile.txt"
}
verifyDir: #VerifyGCS & {
config: TestConfig.gcpConfig
target: deploy.target
file: "foo.txt"
}
}

View File

@@ -0,0 +1 @@
Test recursivity

View File

@@ -0,0 +1 @@
Test directory

View File

@@ -0,0 +1,83 @@
package gcs
import (
"alpha.dagger.io/alpine"
"alpha.dagger.io/dagger/op"
"alpha.dagger.io/gcp"
)
#List: {
// GCP Config
config: gcp.#Config
// Target GCP URL (e.g. gs://<bucket-name>/<path>/<sub-path>)
target?: string
contents: {
string
#up: [
op.#Load & {
from: #GCloud & {
"config": config
}
},
op.#Exec & {
args: [
"/bin/bash",
"--noprofile",
"--norc",
"-eo",
"pipefail",
"-c",
#"""
gsutil ls -r \#(target) > /contents
"""#,
]
},
op.#Export & {
source: "/contents"
format: "string"
},
]
}
}
#VerifyGCS: {
file: string
config: gcp.#Config
target: string
lists: #List & {
"config": config
"target": target
}
test: #up: [
op.#Load & {
from: alpine.#Image & {
package: bash: "~5.1"
}
},
op.#WriteFile & {
dest: "/test"
content: lists.contents
},
op.#Exec & {
always: true
args: [
"/bin/bash",
"--noprofile",
"--norc",
"-eo",
"pipefail",
"-c",
"grep -q \(file) /test",
]
},
]
}