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:
authorSami Hiltunen <shiltunen@gitlab.com>2020-03-10 15:19:29 +0300
committerSami Hiltunen <shiltunen@gitlab.com>2020-03-10 15:19:29 +0300
commit37443e7c5a3ab5352c4eae9b618944fc1079b72f (patch)
tree04fe652b81474fcfcc6fe9603cfcc4baa9d82ac1
parentc15501dab93e99647c28f295ed3441712a30f510 (diff)
parent12420dd6f5e216b6d70af50129e37cd1e7186fe1 (diff)
Merge branch 'jv-gdk-pg-env' into 'master'
Automatically fetch PG* env vars from GDK See merge request gitlab-org/gitaly!1892
-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)
+ }
+}