Merge pull request #1257 from talentedmrjones/europa-fix-input-directory-not-exist
Europa: fixes issue where dagger hangs when input directory does not exist
This commit is contained in:
commit
79eb22799a
10
plan/plan.go
10
plan/plan.go
@ -2,7 +2,10 @@ package plan
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -69,6 +72,13 @@ func (p *Plan) registerLocalDirs() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
abs, err := filepath.Abs(dir)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if _, err := os.Stat(abs); errors.Is(err, os.ErrNotExist) {
|
||||||
|
return fmt.Errorf("path %q does not exist", abs)
|
||||||
|
}
|
||||||
p.context.LocalDirs.Add(dir)
|
p.context.LocalDirs.Add(dir)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,6 +44,13 @@ setup() {
|
|||||||
"$DAGGER" --europa up ./plan/inputs/directories/exists.cue
|
"$DAGGER" --europa up ./plan/inputs/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'
|
||||||
|
}
|
||||||
|
|
||||||
@test "plan/inputs/directories conflicting values" {
|
@test "plan/inputs/directories conflicting values" {
|
||||||
cd "$TESTDIR"
|
cd "$TESTDIR"
|
||||||
run "$DAGGER" --europa up ./plan/inputs/directories/conflicting_values.cue
|
run "$DAGGER" --europa up ./plan/inputs/directories/conflicting_values.cue
|
||||||
|
16
tests/plan/inputs/directories/not_exists.cue
Normal file
16
tests/plan/inputs/directories/not_exists.cue
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"alpha.dagger.io/europa/dagger/engine"
|
||||||
|
)
|
||||||
|
|
||||||
|
engine.#Plan & {
|
||||||
|
// should fail because path does not exist locally
|
||||||
|
inputs: directories: test: path: "./fasdfsdfs"
|
||||||
|
actions: verify: engine.#ReadFile & {
|
||||||
|
input: inputs.directories.test.contents
|
||||||
|
path: "test.txt"
|
||||||
|
} & {
|
||||||
|
contents: "local directory"
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user