diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index d1bbf7a..28d44da 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -30,7 +30,7 @@ jobs: - run: npm ci - - run: prisma generate + - run: npx prisma generate - run: make db push - run: make seed diff --git a/api.dev.go b/api.dev.go index c8aa43c..dc7aad8 100644 --- a/api.dev.go +++ b/api.dev.go @@ -27,7 +27,7 @@ func NewAPIServer(listenAddr string) *APIServer { } func main() { - if err := godotenv.Load(".env.local", ".env"); err != nil { + if err := SafeLoadEnvs(".env.local", ".env"); err != nil { log.Fatal("error loading .env files: " + err.Error()) } if err := os.Setenv("NODE_ENV", "development"); err != nil { @@ -85,6 +85,28 @@ func TCPPortOpen(host string, port string) bool { return true } +func SafeLoadEnvs(filenames ...string) error { + validFilenames := []string{} + for _, fn := range filenames { + if fileExists(fn) { + validFilenames = append(validFilenames, fn) + } + } + if len(validFilenames) == 0 { + fmt.Println("No env files found") + return nil + } + return godotenv.Load(validFilenames...) +} + +func fileExists(filepath string) bool { + _, err := os.Stat(filepath) + if os.IsNotExist(err) { + return false + } + return err == nil +} + func contentType(f string) string { spl := strings.Split(f, ".") fext := spl[len(spl)-1]