From 28d85b96f2cd2913faee03aea8fc78c542bd0711 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pereira?= <47888471+joao-pereira5@users.noreply.github.com> Date: Mon, 15 Jun 2020 15:55:57 +0100 Subject: [PATCH 1/6] Try fix deploy workflow. JDBC URL string not accepted. --- .github/workflows/gcp_release_deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gcp_release_deploy.yaml b/.github/workflows/gcp_release_deploy.yaml index 835d367d..8a8e163c 100644 --- a/.github/workflows/gcp_release_deploy.yaml +++ b/.github/workflows/gcp_release_deploy.yaml @@ -83,7 +83,7 @@ jobs: - name: Insert Issue Token env: - JDBC_DATABASE_URL: "jdbc:postgresql://localhost:${DB_PROXY_PORT}/${DB_NAME}?user=${DB_USER}&password=${DB_PASS}" + JDBC_DATABASE_URL: jdbc:postgresql://localhost:$DB_PROXY_PORT/$DB_NAME?user=$DB_USER&password=$DB_PASS working-directory: project run: ./gradlew pgInsertIssueToken From 6f91ba761e15a637e5308b690bfe566a9b25491f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pereira?= <47888471+joao-pereira5@users.noreply.github.com> Date: Mon, 15 Jun 2020 16:12:35 +0100 Subject: [PATCH 2/6] Trying to find what the GHA error is... --- .github/workflows/gcp_release_deploy.yaml | 2 +- project/buildSrc/src/main/kotlin/db.kt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gcp_release_deploy.yaml b/.github/workflows/gcp_release_deploy.yaml index 8a8e163c..0cd8cc73 100644 --- a/.github/workflows/gcp_release_deploy.yaml +++ b/.github/workflows/gcp_release_deploy.yaml @@ -83,7 +83,7 @@ jobs: - name: Insert Issue Token env: - JDBC_DATABASE_URL: jdbc:postgresql://localhost:$DB_PROXY_PORT/$DB_NAME?user=$DB_USER&password=$DB_PASS + JDBC_DATABASE_URL: "jdbc:postgresql://localhost:$DB_PROXY_PORT/$DB_NAME?user=$DB_USER&password=$DB_PASS" working-directory: project run: ./gradlew pgInsertIssueToken diff --git a/project/buildSrc/src/main/kotlin/db.kt b/project/buildSrc/src/main/kotlin/db.kt index 353aa31d..9eeba414 100644 --- a/project/buildSrc/src/main/kotlin/db.kt +++ b/project/buildSrc/src/main/kotlin/db.kt @@ -25,6 +25,7 @@ object Postgres { println("no JDBC_DATABASE_URL environment variable found, using default value") "jdbc:postgresql://localhost:5432/ion?user=postgres&password=changeit" } else { + println(it) it } } From 6f121bfb98a669115d69bff9589b0a472f2e31f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pereira?= <47888471+joao-pereira5@users.noreply.github.com> Date: Mon, 15 Jun 2020 16:25:53 +0100 Subject: [PATCH 3/6] Set the environment variable as a shell prefix, before spawning the task --- .github/workflows/gcp_release_deploy.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/gcp_release_deploy.yaml b/.github/workflows/gcp_release_deploy.yaml index 0cd8cc73..f2068bc0 100644 --- a/.github/workflows/gcp_release_deploy.yaml +++ b/.github/workflows/gcp_release_deploy.yaml @@ -82,10 +82,8 @@ jobs: $SCHEMA_DIFF_IMG apply - name: Insert Issue Token - env: - JDBC_DATABASE_URL: "jdbc:postgresql://localhost:$DB_PROXY_PORT/$DB_NAME?user=$DB_USER&password=$DB_PASS" working-directory: project - run: ./gradlew pgInsertIssueToken + run: JDBC_DATABASE_URL="jdbc:postgresql://localhost:$DB_PROXY_PORT/$DB_NAME?user=$DB_USER&password=$DB_PASS" ./gradlew pgInsertIssueToken - name: Kill proxy run: pkill cloud_sql_proxy From 850f3b88bd6baf62dde51276cb15362dca257452 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pereira?= <47888471+joao-pereira5@users.noreply.github.com> Date: Mon, 15 Jun 2020 18:04:07 +0100 Subject: [PATCH 4/6] Fixes Token insertion tasks. --- project/buildSrc/src/main/kotlin/db.kt | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/project/buildSrc/src/main/kotlin/db.kt b/project/buildSrc/src/main/kotlin/db.kt index 9eeba414..39a2c6e2 100644 --- a/project/buildSrc/src/main/kotlin/db.kt +++ b/project/buildSrc/src/main/kotlin/db.kt @@ -289,14 +289,17 @@ class Token { val pgParams = Postgres.pgParams val result = project.exec { - commandLine("docker", "exec", Docker.CONTAINER_NAME, - "psql", - "-h", pgParams.host, - "-U", pgParams.user, - "-d", pgParams.db, - "-w", - "-1", - "-c $insertQuery") + commandLine("docker", "run", + "-e", "PGPASSWORD=${pgParams.password}", + "--rm", "--network=host", Docker.IMAGE_NAME, + "psql", + "-h", pgParams.host, + "-U", pgParams.user, + "-d", pgParams.db, + "-p", pgParams.port, + "-w", + "-1", + "-c $insertQuery") environment(Postgres.ENV_PASSWORD, pgParams.password) } From ce5b3b761e8f93448a810cf8c473eccf422ebe0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pereira?= <47888471+joao-pereira5@users.noreply.github.com> Date: Mon, 15 Jun 2020 18:50:14 +0100 Subject: [PATCH 5/6] [Deploy]: Remove println of JDBC_URL env. Previously used for debugging. --- project/buildSrc/src/main/kotlin/db.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/project/buildSrc/src/main/kotlin/db.kt b/project/buildSrc/src/main/kotlin/db.kt index 39a2c6e2..054858d6 100644 --- a/project/buildSrc/src/main/kotlin/db.kt +++ b/project/buildSrc/src/main/kotlin/db.kt @@ -25,7 +25,6 @@ object Postgres { println("no JDBC_DATABASE_URL environment variable found, using default value") "jdbc:postgresql://localhost:5432/ion?user=postgres&password=changeit" } else { - println(it) it } } From 2727ef362a6bca8d169bea869d1f85b6b77dc7e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pereira?= <47888471+joao-pereira5@users.noreply.github.com> Date: Mon, 15 Jun 2020 19:19:21 +0100 Subject: [PATCH 6/6] Guarantee runner connection string refresh. The buildSrc project used for the database related tasks uses a cached configuration object (Postgres Params). --- .github/workflows/gcp_release_deploy.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/gcp_release_deploy.yaml b/.github/workflows/gcp_release_deploy.yaml index f2068bc0..622dbea3 100644 --- a/.github/workflows/gcp_release_deploy.yaml +++ b/.github/workflows/gcp_release_deploy.yaml @@ -81,6 +81,10 @@ jobs: -v "$(pwd)/../docker:/mnt" \ $SCHEMA_DIFF_IMG apply + - name: Guarantee connection string refresh, in case this job is executed by a previous runner + working-directory: project + run: ./gradlew clean -p buildSrc + - name: Insert Issue Token working-directory: project run: JDBC_DATABASE_URL="jdbc:postgresql://localhost:$DB_PROXY_PORT/$DB_NAME?user=$DB_USER&password=$DB_PASS" ./gradlew pgInsertIssueToken