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:
Sam Alba 2021-12-17 12:58:03 -08:00 committed by GitHub
commit 79eb22799a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 33 additions and 0 deletions

View File

@ -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)
} }

View File

@ -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

View 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"
}
}