@@ -57,10 +57,14 @@ let Cmd = ../Lib/Cmds.dhall
5757
5858let ContainerImages = ../ Constants / ContainerImages. dhall
5959
60+ let ScriptOrArchive
61+ : Type
62+ = < Script : Text | Archive : { Script : Text , Archive : Text } >
63+
6064let runInDockerWithPostgresConn
61- : List Text -> Text -> Text -> Text -> Cmd. Type
65+ : List Text -> ScriptOrArchive -> Text -> Text -> Cmd. Type
6266 = \ (environment : List Text )
63- -> \ (initScript : Text )
67+ -> \ (initScript : ScriptOrArchive )
6468 -> \ (docker : Text )
6569 -> \ (innerScript : Text )
6670 -> let port = " 5432"
@@ -97,13 +101,31 @@ let runInDockerWithPostgresConn
97101 : Text
98102 = " \\ \$BUILDKITE_BUILD_CHECKOUT_PATH"
99103
104+ let runInitScript =
105+ merge
106+ { Script =
107+ \ (script : Text )
108+ -> [ " docker exec ${postgresDockerName} psql ${pg_conn} -f /workdir/${script}"
109+ ]
110+ , Archive =
111+ \ (archive : { Script : Text , Archive : Text })
112+ -> [ " tar -xzf ${archive.Archive}"
113+ , " docker exec ${postgresDockerName} find /workdir -name \" ${archive.Script}\" -exec psql ${pg_conn} -f {} \\ ;"
114+ ]
115+ }
116+ initScript
117+
100118 in Cmd. chain
101- [ " ( docker stop ${postgresDockerName} && docker rm ${postgresDockerName} ) || true"
102- , " source buildkite/scripts/export-git-env-vars.sh"
103- , " docker run --network host --volume ${outerDir}:/workdir --workdir /workdir --name ${postgresDockerName} -d -e POSTGRES_USER=${user} -e POSTGRES_PASSWORD=${password} -e POSTGRES_PASSWORD=${password} -e POSTGRES_DB=${dbName} ${dockerVersion}"
104- , " sleep 5"
105- , " docker exec ${postgresDockerName} psql ${pg_conn} -f /workdir/${initScript}"
106- , " docker run --pid=container:postgres --network host --volume ${outerDir}:/workdir --workdir /workdir --entrypoint bash ${envVars} ${docker} ${innerScript}"
107- ]
108-
109- in { runInDockerWithPostgresConn = runInDockerWithPostgresConn }
119+ ( [ " ( docker stop ${postgresDockerName} && docker rm ${postgresDockerName} ) || true"
120+ , " source buildkite/scripts/export-git-env-vars.sh"
121+ , " docker run --network host --volume ${outerDir}:/workdir --workdir /workdir --name ${postgresDockerName} -d -e POSTGRES_USER=${user} -e POSTGRES_PASSWORD=${password} -e POSTGRES_DB=${dbName} ${dockerVersion}"
122+ , " sleep 5"
123+ ]
124+ # runInitScript
125+ # [ " docker run --pid=container:postgres --network host --volume ${outerDir}:/workdir --workdir /workdir --entrypoint bash ${envVars} ${docker} ${innerScript}"
126+ ]
127+ )
128+
129+ in { runInDockerWithPostgresConn = runInDockerWithPostgresConn
130+ , ScriptOrArchive = ScriptOrArchive
131+ }
0 commit comments