Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Vosmaer <jacob@gitlab.com>2020-03-09 16:14:07 +0300
committerJacob Vosmaer <jacob@gitlab.com>2020-03-09 16:14:07 +0300
commit12420dd6f5e216b6d70af50129e37cd1e7186fe1 (patch)
treeffe4facf727dd5ec447040c266baaed8a6225c29
parentbedcf592fcafad2da8b3afad3b40d8ce21ba13a6 (diff)
Automatically fetch PG_ env vars from GDK
-rw-r--r--internal/praefect/datastore/glsql/postgres_test.go2
-rw-r--r--internal/praefect/datastore/glsql/testing.go26
2 files changed, 28 insertions, 0 deletions
diff --git a/internal/praefect/datastore/glsql/postgres_test.go b/internal/praefect/datastore/glsql/postgres_test.go
index 586375c65..54fcba8ae 100644
--- a/internal/praefect/datastore/glsql/postgres_test.go
+++ b/internal/praefect/datastore/glsql/postgres_test.go
@@ -19,6 +19,8 @@ import (
)
func TestOpenDB(t *testing.T) {
+ getEnvFromGDK(t)
+
dbCfg := config.DB{
Host: os.Getenv("PGHOST"),
Port: func() int {
diff --git a/internal/praefect/datastore/glsql/testing.go b/internal/praefect/datastore/glsql/testing.go
index eba642c65..f05fd7051 100644
--- a/internal/praefect/datastore/glsql/testing.go
+++ b/internal/praefect/datastore/glsql/testing.go
@@ -5,6 +5,7 @@ import (
"errors"
"fmt"
"os"
+ "os/exec"
"strconv"
"strings"
"sync"
@@ -80,6 +81,8 @@ func GetDB(t testing.TB) DB {
func initGitalyTestDB(t testing.TB) *sql.DB {
t.Helper()
+ getEnvFromGDK(t)
+
host, hostFound := os.LookupEnv("PGHOST")
require.True(t, hostFound, "PGHOST env var expected to be provided to connect to Postgres database")
@@ -124,3 +127,26 @@ func Clean() error {
}
return nil
}
+
+func getEnvFromGDK(t testing.TB) {
+ gdkEnv, err := exec.Command("gdk", "env").Output()
+ if err != nil {
+ // Assume we are not in a GDK setup; this is not an error so just return.
+ return
+ }
+
+ for _, line := range strings.Split(string(gdkEnv), "\n") {
+ const prefix = "export "
+ if !strings.HasPrefix(line, prefix) {
+ continue
+ }
+
+ split := strings.SplitN(strings.TrimPrefix(line, prefix), "=", 2)
+ if len(split) != 2 {
+ continue
+ }
+ key, value := split[0], split[1]
+
+ require.NoError(t, os.Setenv(key, value), "set env var %v", key)
+ }
+}