282759c0e5
In preparation for Europa, we will vendor multiple CUE modules: - `pkg/alpha.dagger.io`: legacy non-europa packages - `pkg/dagger.io`: core Europa packages - `pkg/universe.dagger.io`: Europa universe Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
57 lines
1.2 KiB
CUE
57 lines
1.2 KiB
CUE
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: true
|
|
package: jq: true
|
|
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
|
|
}
|
|
}
|