@@ -10,6 +10,7 @@ import (
1010 "net/http"
1111 "os"
1212 "os/exec"
13+ "path"
1314 "time"
1415)
1516
@@ -34,14 +35,36 @@ func main() {
3435 logFlag := flag .Bool ("log" , false , "enable stack logging" )
3536 flag .Parse ()
3637
38+ rootFolder , err := os .Getwd ()
39+
40+ if err != nil {
41+ slog .Error ("fail" , "error" , err )
42+ os .Exit (1 )
43+ }
44+
45+ slog .Info ("root folder" , "folder" , rootFolder )
46+
47+ integrationRoot := rootFolder
48+
49+ if _ , err := os .Stat (path .Join (rootFolder , ".git" )); err != nil {
50+ if ! errors .Is (err , os .ErrNotExist ) {
51+ slog .Error ("fail" , "error" , err )
52+ os .Exit (1 )
53+ }
54+ } else {
55+ integrationRoot = path .Join (rootFolder , "integration" )
56+ }
57+
58+ slog .Info ("integration root" , "folder" , integrationRoot )
59+
3760 for _ , proxy := range ProxiesToTest {
3861 slog .Info ("begin" , "proxy" , proxy )
3962 compose := fmt .Sprintf ("docker-compose.%s.yml" , proxy )
40- if _ , err := os .Stat (compose ); err != nil {
63+ if _ , err := os .Stat (path . Join ( integrationRoot , compose ) ); err != nil {
4164 slog .Error ("fail" , "proxy" , proxy , "error" , err )
4265 os .Exit (1 )
4366 }
44- if err := createInstanceAndRunTests (compose , * logFlag , proxy ); err != nil {
67+ if err := createInstanceAndRunTests (compose , * logFlag , proxy , integrationRoot ); err != nil {
4568 slog .Error ("fail" , "proxy" , proxy , "error" , err )
4669 os .Exit (1 )
4770 }
@@ -74,11 +97,13 @@ func runTests(client *http.Client, name string) error {
7497 return nil
7598}
7699
77- func createInstanceAndRunTests (compose string , log bool , name string ) error {
100+ func createInstanceAndRunTests (compose string , log bool , name string , integrationDir string ) error {
78101 ctx , cancel := context .WithCancel (context .Background ())
79102 defer cancel ()
80103
81- cmdArgs := []string {"compose" , "-f" , compose , "--env-file" , EnvFile , "up" , "--build" , "--force-recreate" , "--remove-orphans" }
104+ composeFile := path .Join (integrationDir , compose )
105+ envFile := path .Join (integrationDir , EnvFile )
106+ cmdArgs := []string {"compose" , "-f" , composeFile , "--env-file" , envFile , "up" , "--build" , "--force-recreate" , "--remove-orphans" }
82107 cmd := exec .CommandContext (ctx , "docker" , cmdArgs ... )
83108
84109 if log {
0 commit comments