From e809e2ba6d306400c77997c0806f6089d9f84327 Mon Sep 17 00:00:00 2001 From: Sam Alba Date: Mon, 13 Dec 2021 16:12:46 -0800 Subject: [PATCH] stdlib: implemented bats package for running bats script from dagger Signed-off-by: Sam Alba --- stdlib/bats/bats.cue | 56 ++++++++++++++++++++++++++++++++++++++ stdlib/bats/tests/bats.cue | 2 +- 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 stdlib/bats/bats.cue diff --git a/stdlib/bats/bats.cue b/stdlib/bats/bats.cue new file mode 100644 index 00000000..bf81c140 --- /dev/null +++ b/stdlib/bats/bats.cue @@ -0,0 +1,56 @@ +package bats + +import ( + "strings" + + "alpha.dagger.io/dagger" + "alpha.dagger.io/os" + "alpha.dagger.io/alpine" +) + +#Bats: { + // Source containing bats files + source: dagger.#Artifact & dagger.#Input + + // bats options + options: [...string] + + // mount points passed to the bats container + mount: [string]: from: dagger.#Artifact + + // environment variables + env: [string]: string + + // socket mounts for the bats container + socket: [string]: dagger.#Stream + + // setup commands to run only once (for installing dependencies) + setupCommands: [...string] + + // init script to run right before bats + initScript: string | *"" + + defaultOptions: ["--print-output-on-failure", "--show-output-of-passing-tests"] + + ctr: os.#Container & { + image: alpine.#Image & { + package: curl: true + package: bash: "~=5.1" + package: jq: "~=1.6" + package: npm: true + package: git: true + } + shell: path: "/bin/bash" + setup: ["npm install -g bats"] + setupCommands + command: #""" + \#(initScript) + bats \#(strings.Join(defaultOptions, " ")) \#(strings.Join(options, " ")) ../src + """# + + dir: "/app" + "mount": mount + "mount": "/src": from: source + "env": env + "socket": socket + } +} diff --git a/stdlib/bats/tests/bats.cue b/stdlib/bats/tests/bats.cue index 9e26365d..74ce8269 100644 --- a/stdlib/bats/tests/bats.cue +++ b/stdlib/bats/tests/bats.cue @@ -1,7 +1,7 @@ package main import ( - "alpha.dagger.io/bats" + "alpha.dagger.io/bats" ) TestBats: bats.#Bats