engine: Make paths relative to the CUE file they're defined in

Fixes #1309

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
This commit is contained in:
Andrea Luzzardi
2021-12-23 19:09:26 +01:00
committed by Sam Alba
parent ec69734c51
commit 9c81a155c9
12 changed files with 134 additions and 30 deletions

View File

@@ -44,11 +44,18 @@ setup() {
"$DAGGER" --europa up ./plan/inputs/directories/exists.cue
}
@test "plan/inputs/directories relative directories" {
cd "$TESTDIR"
cd "$TESTDIR"/plan/inputs
"$DAGGER" --europa up ./directories/exists.cue
}
@test "plan/inputs/directories not exists" {
cd "$TESTDIR"
run "$DAGGER" --europa up ./plan/inputs/directories/not_exists.cue
assert_failure
assert_output --partial 'tests/fasdfsdfs" does not exist'
assert_output --partial 'fasdfsdfs" does not exist'
}
@test "plan/inputs/directories conflicting values" {
@@ -63,6 +70,11 @@ setup() {
"$DAGGER" --europa up ./plan/inputs/secrets/exec.cue
}
@test "plan/inputs/secrets exec relative" {
cd "$TESTDIR"
"$DAGGER" --europa up ./plan/inputs/secrets/exec.cue
}
@test "plan/inputs/secrets invalid command" {
cd "$TESTDIR"
run "$DAGGER" --europa up ./plan/inputs/secrets/invalid_command.cue
@@ -78,6 +90,14 @@ setup() {
assert [ -f "./out/test" ]
}
@test "plan/outputs relative paths" {
cd "$TESTDIR"/plan
rm -f "./outputs/out/test"
"$DAGGER" --europa up ./outputs/outputs.cue
assert [ -f "./outputs/out/test" ]
}
@test "plan/platform" {
cd "$TESTDIR"

View File

@@ -5,7 +5,7 @@ import (
)
engine.#Plan & {
inputs: directories: test: path: "./plan/inputs/directories"
inputs: directories: test: path: "."
actions: verify: engine.#ReadFile & {
input: inputs.directories.test.contents
path: "test.txt"

View File

@@ -5,7 +5,7 @@ import (
)
engine.#Plan & {
inputs: directories: test: path: "./plan/inputs/directories"
inputs: directories: test: path: "."
actions: verify: engine.#ReadFile & {
input: inputs.directories.test.contents
path: "test.txt"

View File

@@ -0,0 +1,33 @@
package main
import (
"alpha.dagger.io/europa/dagger/engine"
)
engine.#Plan & {
inputs: secrets: echo: command: {
name: "cat"
args: ["./test.txt"]
}
actions: {
image: engine.#Pull & {
source: "alpine:3.15.0@sha256:e7d88de73db3d3fd9b2d63aa7f447a10fd0220b7cbf39803c803f2af9ba256b3"
}
verify: engine.#Exec & {
input: image.output
mounts: secret: {
dest: "/run/secrets/test"
contents: inputs.secrets.echo.contents
}
args: [
"sh", "-c",
#"""
test "$(cat /run/secrets/test)" = "test"
"""#,
]
}
}
}

View File

@@ -0,0 +1 @@
test

View File

@@ -5,7 +5,7 @@ import "alpha.dagger.io/europa/dagger/engine"
engine.#Plan & {
inputs: secrets: token: command: {
name: "sops"
args: ["exec-env", "./secrets_sops.yaml", "echo $TestPAT"]
args: ["exec-env", "../../secrets_sops.yaml", "echo $TestPAT"]
}
actions: {