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 (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@ -69,6 +72,13 @@ func (p *Plan) registerLocalDirs() error {
|
||||
if err != nil {
|
||||
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)
|
||||
}
|
||||
|
||||
|
@ -44,6 +44,13 @@ setup() {
|
||||
"$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" {
|
||||
cd "$TESTDIR"
|
||||
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