From fa64ebc150b9e4b17acf971a8d7c35396533d263 Mon Sep 17 00:00:00 2001 From: Panu Kalliokoski Date: Fri, 25 Oct 2024 15:12:07 +0300 Subject: [PATCH 01/12] OK-636: europass-publisher docker image build --- .github/workflows/build.yml | 50 ++++++++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c50b10b1..65377753 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -45,10 +45,12 @@ jobs: - uses: actions/cache@v3 id: restore-build with: - path: kouta-external/target + path: | + kouta-external/target + europass-publisher/target key: ${{ github.sha }} - deploy-container: + deploy-kouta-container: needs: test-and-build runs-on: ubuntu-latest @@ -60,6 +62,7 @@ jobs: with: path: | kouta-external/target + europass-publisher/target key: ${{ github.sha }} - name: Build and deploy Docker container @@ -70,10 +73,45 @@ jobs: run: | git clone https://github.com/Opetushallitus/ci-tools.git source ci-tools/common/setup-tools.sh - export ARTIFACT_NAME="kouta-external" - mv kouta-external/target/kouta-external-*-jar-with-dependencies.jar $DOCKER_BUILD_DIR/artifact/${ARTIFACT_NAME}.jar + export BASE_IMAGE="baseimage-fatjar-openjdk11:master" + export KOUTA_ARTIFACT_NAME="kouta-external" + + mv kouta-external/target/kouta-external-*-jar-with-dependencies.jar \ + $DOCKER_BUILD_DIR/artifact/${KOUTA_ARTIFACT_NAME}.jar cp -vr kouta-external/src/main/resources/* $DOCKER_BUILD_DIR/config/ + ./ci-tools/common/pull-image.sh + ./ci-tools/github-build/build-fatjar.sh $KOUTA_ARTIFACT_NAME + ./ci-tools/github-build/upload-image.sh $KOUTA_ARTIFACT_NAME + + deploy-europass-container: + needs: test-and-build + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - uses: actions/cache@v3 + id: restore-build + with: + path: | + kouta-external/target + europass-publisher/target + key: ${{ github.sha }} + + - name: Build and deploy Docker container + shell: bash + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + run: | + git clone https://github.com/Opetushallitus/ci-tools.git + source ci-tools/common/setup-tools.sh export BASE_IMAGE="baseimage-fatjar-openjdk11:master" + export EUROPASS_ARTIFACT_NAME="kouta-external-europass" + + mv europass-publisher/target/europass-publisher-*-jar-with-dependencies.jar \ + $DOCKER_BUILD_DIR/artifact/${EUROPASS_ARTIFACT_NAME}.jar + cp -vr europass-publisher/src/main/resources/* $DOCKER_BUILD_DIR/config/ ./ci-tools/common/pull-image.sh - ./ci-tools/github-build/build-fatjar.sh $ARTIFACT_NAME - ./ci-tools/github-build/upload-image.sh $ARTIFACT_NAME + ./ci-tools/github-build/build-fatjar.sh $EUROPASS_ARTIFACT_NAME + ./ci-tools/github-build/upload-image.sh $EUROPASS_ARTIFACT_NAME From 0f02c126540734f9a82adeeb22f40f258fb376cb Mon Sep 17 00:00:00 2001 From: Panu Kalliokoski Date: Mon, 28 Oct 2024 14:03:09 +0200 Subject: [PATCH 02/12] OK-636: europass-publisher.properties for environments --- .../europass-publisher.properties.template | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 europass-publisher/src/main/resources/oph-configuration/europass-publisher.properties.template diff --git a/europass-publisher/src/main/resources/oph-configuration/europass-publisher.properties.template b/europass-publisher/src/main/resources/oph-configuration/europass-publisher.properties.template new file mode 100644 index 00000000..02f89406 --- /dev/null +++ b/europass-publisher/src/main/resources/oph-configuration/europass-publisher.properties.template @@ -0,0 +1,7 @@ +europass-publisher.elasticsearch.url = {{kouta_external_elasticsearch7_url}} +europass-publisher.elasticsearch.username = {{kouta_external_elasticsearch_username}} +europass-publisher.elasticsearch.password = {{kouta_external_elasticsearch_password}} +europass-publisher.s3.region = eu-west-1 +europass-publisher.s3.bucketname = europass-publish-{{ env("ENV_NAME") }} +europass-publisher.s3.keyname = europass-export-1.xml +europass-publisher.s3.endpoint = From 52012858396ce14b585f1d1a9387763fa77f9404 Mon Sep 17 00:00:00 2001 From: Panu Kalliokoski Date: Fri, 22 Nov 2024 10:01:51 +0200 Subject: [PATCH 03/12] OK-636: move europass-publisher.properties.template to correct name --- ...> kouta-external-europass.properties.template} | 0 .../kouta/europass/EuropassConfiguration.scala | 15 ++++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) rename europass-publisher/src/main/resources/oph-configuration/{europass-publisher.properties.template => kouta-external-europass.properties.template} (100%) diff --git a/europass-publisher/src/main/resources/oph-configuration/europass-publisher.properties.template b/europass-publisher/src/main/resources/oph-configuration/kouta-external-europass.properties.template similarity index 100% rename from europass-publisher/src/main/resources/oph-configuration/europass-publisher.properties.template rename to europass-publisher/src/main/resources/oph-configuration/kouta-external-europass.properties.template diff --git a/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala b/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala index a8f2540c..e6adee8c 100644 --- a/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala +++ b/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala @@ -1,8 +1,17 @@ package fi.oph.kouta.europass +import fi.vm.sade.utils.slf4j.Logging import com.typesafe.config.ConfigFactory -object EuropassConfiguration { - lazy val config = ConfigFactory.load("europass-publisher") - .withFallback(ConfigFactory.load("default")) +object EuropassConfiguration extends Logging { + val templatedConfig = ConfigFactory.load("kouta-external-europass") + //val templatedConfigEP = templatedConfig.getConfig("europass-publisher") + logger.info(s"Templated config is $templatedConfig") + val localConfig = ConfigFactory.load("europass-publisher") + //val localConfigEP = localConfig.getConfig("europass-publisher") + logger.info(s"Local config is $localConfig") + val fallbackConfig = ConfigFactory.load("default") + //val fallbackConfigEP = fallbackConfig.getConfig("europass-publisher") + logger.info(s"Fallback config is $fallbackConfig") + lazy val config = templatedConfig.withFallback(localConfig).withFallback(fallbackConfig) } From 49d5a853c80bd70cecc6d94396578de5e2d8beaa Mon Sep 17 00:00:00 2001 From: Panu Kalliokoski Date: Mon, 25 Nov 2024 09:56:56 +0200 Subject: [PATCH 04/12] OK-636: print classpath on startup for debugging --- .../fi/oph/kouta/europass/EuropassConfiguration.scala | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala b/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala index e6adee8c..15f3d6c2 100644 --- a/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala +++ b/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala @@ -4,6 +4,15 @@ import fi.vm.sade.utils.slf4j.Logging import com.typesafe.config.ConfigFactory object EuropassConfiguration extends Logging { + def classPathUrls(cl: ClassLoader): Array[java.net.URL] = cl match { + case null => Array() + case u: java.net.URLClassLoader => u.getURLs() ++ classPathUrls(cl.getParent) + case _ => classPathUrls(cl.getParent) + } + + logger.info("Reading configuration from classpath:") + logger.info(classPathUrls(getClass.getClassLoader).mkString(", ")) + val templatedConfig = ConfigFactory.load("kouta-external-europass") //val templatedConfigEP = templatedConfig.getConfig("europass-publisher") logger.info(s"Templated config is $templatedConfig") From 5f02400271317ce96d973b5d3df190a85422cabf Mon Sep 17 00:00:00 2001 From: Panu Kalliokoski Date: Mon, 25 Nov 2024 10:04:39 +0200 Subject: [PATCH 05/12] OK-636: make EuropassConfiguration.config truly lazy --- .../europass/EuropassConfiguration.scala | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala b/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala index 15f3d6c2..72a3b17d 100644 --- a/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala +++ b/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala @@ -1,7 +1,7 @@ package fi.oph.kouta.europass import fi.vm.sade.utils.slf4j.Logging -import com.typesafe.config.ConfigFactory +import com.typesafe.config.{Config, ConfigFactory} object EuropassConfiguration extends Logging { def classPathUrls(cl: ClassLoader): Array[java.net.URL] = cl match { @@ -10,17 +10,18 @@ object EuropassConfiguration extends Logging { case _ => classPathUrls(cl.getParent) } - logger.info("Reading configuration from classpath:") - logger.info(classPathUrls(getClass.getClassLoader).mkString(", ")) + def createConfig(): Config = { + logger.info("Reading configuration from classpath: " + + classPathUrls(getClass.getClassLoader).mkString(", ")) - val templatedConfig = ConfigFactory.load("kouta-external-europass") - //val templatedConfigEP = templatedConfig.getConfig("europass-publisher") - logger.info(s"Templated config is $templatedConfig") - val localConfig = ConfigFactory.load("europass-publisher") - //val localConfigEP = localConfig.getConfig("europass-publisher") - logger.info(s"Local config is $localConfig") - val fallbackConfig = ConfigFactory.load("default") - //val fallbackConfigEP = fallbackConfig.getConfig("europass-publisher") - logger.info(s"Fallback config is $fallbackConfig") - lazy val config = templatedConfig.withFallback(localConfig).withFallback(fallbackConfig) + val templatedConfig = ConfigFactory.load("kouta-external-europass") + logger.info(s"Templated config is $templatedConfig") + val localConfig = ConfigFactory.load("europass-publisher") + logger.info(s"Local config is $localConfig") + val fallbackConfig = ConfigFactory.load("default") + logger.info(s"Fallback config is $fallbackConfig") + return templatedConfig.withFallback(localConfig).withFallback(fallbackConfig) + } + + lazy val config = createConfig() } From 35136059ebdfdb829f686f2f30b68378a4521205 Mon Sep 17 00:00:00 2001 From: Panu Kalliokoski Date: Mon, 25 Nov 2024 13:40:25 +0200 Subject: [PATCH 06/12] OK-636: use explicit filename to load templated settings --- .../oph/kouta/europass/EuropassConfiguration.scala | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala b/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala index 72a3b17d..8ac27ba8 100644 --- a/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala +++ b/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala @@ -2,6 +2,7 @@ package fi.oph.kouta.europass import fi.vm.sade.utils.slf4j.Logging import com.typesafe.config.{Config, ConfigFactory} +import java.io.File object EuropassConfiguration extends Logging { def classPathUrls(cl: ClassLoader): Array[java.net.URL] = cl match { @@ -14,12 +15,16 @@ object EuropassConfiguration extends Logging { logger.info("Reading configuration from classpath: " + classPathUrls(getClass.getClassLoader).mkString(", ")) - val templatedConfig = ConfigFactory.load("kouta-external-europass") - logger.info(s"Templated config is $templatedConfig") + val configFile = new File(System.getProperty("user.home") + + "/oph-configuration/kouta-external-europass.properties") + val templatedConfig = if (configFile.exists()) { + ConfigFactory.load(ConfigFactory.parseFile(configFile)) + } else { + logger.warn("Actual config file kouta-external-europass.properties not found") + ConfigFactory.load() + } val localConfig = ConfigFactory.load("europass-publisher") - logger.info(s"Local config is $localConfig") val fallbackConfig = ConfigFactory.load("default") - logger.info(s"Fallback config is $fallbackConfig") return templatedConfig.withFallback(localConfig).withFallback(fallbackConfig) } From fa0065faff06854411cee40aecce5c3d4de4da67 Mon Sep 17 00:00:00 2001 From: Panu Kalliokoski Date: Tue, 26 Nov 2024 13:42:03 +0200 Subject: [PATCH 07/12] OY-4980: fix dependency errors from library update --- .github/workflows/build.yml | 4 +--- europass-publisher/pom.xml | 11 +++++++++++ kouta-external/pom.xml | 34 ++++++++++++++++++++++------------ 3 files changed, 34 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 65377753..8861b2e2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,9 +31,7 @@ jobs: run: | git clone https://github.com/Opetushallitus/ci-tools.git source ci-tools/common/setup-tools.sh - cd postgresql/docker - docker build --tag koutaexternal-postgres . - cd - + (cd postgresql/docker && docker build --tag koutaexternal-postgres .) - name: Build with Maven env: diff --git a/europass-publisher/pom.xml b/europass-publisher/pom.xml index 55f58a39..faa86505 100644 --- a/europass-publisher/pom.xml +++ b/europass-publisher/pom.xml @@ -19,7 +19,18 @@ fi.oph.kouta kouta-common + + + com.github.ben-manes.caffeine + caffeine + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.json4s json4s-xml_2.12 diff --git a/kouta-external/pom.xml b/kouta-external/pom.xml index efd16737..3bcb041a 100644 --- a/kouta-external/pom.xml +++ b/kouta-external/pom.xml @@ -20,6 +20,7 @@ co.elastic.clients elasticsearch-java + fi.oph.kouta kouta-common @@ -28,20 +29,12 @@ com.github.ben-manes.caffeine caffeine + + jakarta.xml.bind + jakarta.xml.bind-api + - - fi.oph.kouta - kouta-common - - - com.github.ben-manes.caffeine - caffeine - - - tests - test - org.json4s @@ -180,6 +173,23 @@ + + fi.oph.kouta + kouta-common + + + com.github.ben-manes.caffeine + caffeine + + + jakarta.xml.bind + jakarta.xml.bind-api + + + tests + test + + org.scalatra scalatra-scalatest_2.12 From 8faaa29eb819f726a6ac2d7c6a441c44f0691e78 Mon Sep 17 00:00:00 2001 From: Panu Kalliokoski Date: Tue, 26 Nov 2024 14:07:07 +0200 Subject: [PATCH 08/12] OY-4980: fix import conflict created by library update --- .../scala/fi/oph/kouta/europass/EuropassConfiguration.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala b/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala index 8ac27ba8..4ba90ac7 100644 --- a/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala +++ b/europass-publisher/src/main/scala/fi/oph/kouta/europass/EuropassConfiguration.scala @@ -1,6 +1,6 @@ package fi.oph.kouta.europass -import fi.vm.sade.utils.slf4j.Logging +import fi.oph.kouta.logging.Logging import com.typesafe.config.{Config, ConfigFactory} import java.io.File From b2b6ed92eb3c2484f406bbc0b13ff19b124a57b3 Mon Sep 17 00:00:00 2001 From: Panu Kalliokoski Date: Tue, 26 Nov 2024 14:28:33 +0200 Subject: [PATCH 09/12] OK-758: re-enable Europass build --- pom.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 8fedbde3..25c1ad5e 100644 --- a/pom.xml +++ b/pom.xml @@ -11,8 +11,7 @@ kouta-external - - + europass-publisher From 0171a183cfdd024979f793212ca256affb689bce Mon Sep 17 00:00:00 2001 From: Panu Kalliokoski Date: Wed, 27 Nov 2024 09:54:10 +0200 Subject: [PATCH 10/12] OK-758: Create fixture for running ElasticSearch as part of tests --- .github/workflows/build.yml | 1 + .../europass/test/ElasticClientSpec.scala | 2 +- .../kouta/europass/test/ElasticFixture.scala | 21 +++++++++++++++++++ .../kouta/europass/test/PublisherSpec.scala | 2 +- 4 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 europass-publisher/src/test/scala/fi/oph/kouta/europass/test/ElasticFixture.scala diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8861b2e2..d9498347 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,6 +32,7 @@ jobs: git clone https://github.com/Opetushallitus/ci-tools.git source ci-tools/common/setup-tools.sh (cd postgresql/docker && docker build --tag koutaexternal-postgres .) + sudo apt install docker-compose - name: Build with Maven env: diff --git a/europass-publisher/src/test/scala/fi/oph/kouta/europass/test/ElasticClientSpec.scala b/europass-publisher/src/test/scala/fi/oph/kouta/europass/test/ElasticClientSpec.scala index 203c172b..4e9321d0 100644 --- a/europass-publisher/src/test/scala/fi/oph/kouta/europass/test/ElasticClientSpec.scala +++ b/europass-publisher/src/test/scala/fi/oph/kouta/europass/test/ElasticClientSpec.scala @@ -8,7 +8,7 @@ import scala.concurrent.Await import fi.oph.kouta.europass.ElasticClient -class ElasticClientSpec extends ScalatraFlatSpec { +class ElasticClientSpec extends ScalatraFlatSpec with ElasticFixture { implicit val ec: scala.concurrent.ExecutionContext = scala.concurrent.ExecutionContext.global implicit val formats = DefaultFormats diff --git a/europass-publisher/src/test/scala/fi/oph/kouta/europass/test/ElasticFixture.scala b/europass-publisher/src/test/scala/fi/oph/kouta/europass/test/ElasticFixture.scala new file mode 100644 index 00000000..6d74201e --- /dev/null +++ b/europass-publisher/src/test/scala/fi/oph/kouta/europass/test/ElasticFixture.scala @@ -0,0 +1,21 @@ +package fi.oph.kouta.europass.test + +import org.scalatest.{BeforeAndAfterAll, Suite} +import scala.sys.process.Process + +trait ElasticFixture extends BeforeAndAfterAll { this: Suite => + + override def beforeAll() { + if (System.getenv("TEST_USE_PRERUN_ELASTIC") == null) { + Process("docker-compose up -d kouta-elastic europass-s3").! + Process("docker-compose up elasticdump-loader s3-configurator").! + } + } + + override def afterAll() { + if (System.getenv("TEST_USE_PRERUN_ELASTIC") == null) { + Process("docker-compose down").! + } + } + +} diff --git a/europass-publisher/src/test/scala/fi/oph/kouta/europass/test/PublisherSpec.scala b/europass-publisher/src/test/scala/fi/oph/kouta/europass/test/PublisherSpec.scala index 8e2a8b35..5bd73ddd 100644 --- a/europass-publisher/src/test/scala/fi/oph/kouta/europass/test/PublisherSpec.scala +++ b/europass-publisher/src/test/scala/fi/oph/kouta/europass/test/PublisherSpec.scala @@ -8,7 +8,7 @@ import java.io._ import fi.oph.kouta.europass.Publisher -class PublisherSpec extends ScalatraFlatSpec { +class PublisherSpec extends ScalatraFlatSpec with ElasticFixture { "toteutusToFile" should "create correct toteutusXml from ElasticSearch" in { val writer = new StringWriter() From f8c8c38c676a6508dae0bdcf8f329040e0a2f19a Mon Sep 17 00:00:00 2001 From: Panu Kalliokoski Date: Wed, 27 Nov 2024 10:31:51 +0200 Subject: [PATCH 11/12] OK-758: use same envvar for Elastic fixture in both europass-publisher and kouta-external --- README.md | 8 ++++++++ .../test/scala/fi/oph/kouta/external/TempElastic.scala | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7b8b0cba..a3ced679 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,15 @@ Jos Maven on asennettuna, voi testit ajaa myös komentoriviltä `mvn test` komen ajettavien testejä `mvn test -Dsuites=""`. Esimerkiksi `mvn test -Dsuites="fi.oph.kouta.external.integration.HakukohdeSpec"` +Jos ajat testejä monta kertaa peräkkäin, ajamista voi nopeuttaa +pitämällä testidatalla täytetyn ElasticSearchin koko ajan käynnissä. +Tämä onnistuu seuraavilla komennoilla: +``` shell +$ docker-compose up -d kouta-elastic +$ docker-compose up elasticdump-loader +$ export TEST_USE_PRERUN_ELASTIC=true +``` ### 3.3. Migraatiot diff --git a/kouta-external/src/test/scala/fi/oph/kouta/external/TempElastic.scala b/kouta-external/src/test/scala/fi/oph/kouta/external/TempElastic.scala index 6f130cd0..7df50efb 100644 --- a/kouta-external/src/test/scala/fi/oph/kouta/external/TempElastic.scala +++ b/kouta-external/src/test/scala/fi/oph/kouta/external/TempElastic.scala @@ -15,7 +15,7 @@ import org.testcontainers.elasticsearch.ElasticsearchContainer import org.testcontainers.utility.DockerImageName object TempElasticClient { - val useTestContainersElastic = true // Aseta falseksi, jos haluat ajaa testejä jo käynnissä olevaa elasticsearchia vasten + val useTestContainersElastic = (System.getenv("TEST_USE_PRERUN_ELASTIC") == null) var url = "" if (useTestContainersElastic) { url = s"http://localhost:${TempElastic.start()}" From 1432a54194f5a64f97a6f66dd953e326c75984e4 Mon Sep 17 00:00:00 2001 From: Panu Kalliokoski Date: Wed, 27 Nov 2024 13:41:28 +0200 Subject: [PATCH 12/12] OK-758: Make TEST_USE_PRERUN_ELASTIC a true/false flag --- .../scala/fi/oph/kouta/europass/test/ElasticFixture.scala | 7 +++++-- .../src/test/scala/fi/oph/kouta/external/TempElastic.scala | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/europass-publisher/src/test/scala/fi/oph/kouta/europass/test/ElasticFixture.scala b/europass-publisher/src/test/scala/fi/oph/kouta/europass/test/ElasticFixture.scala index 6d74201e..6b8ae515 100644 --- a/europass-publisher/src/test/scala/fi/oph/kouta/europass/test/ElasticFixture.scala +++ b/europass-publisher/src/test/scala/fi/oph/kouta/europass/test/ElasticFixture.scala @@ -5,15 +5,18 @@ import scala.sys.process.Process trait ElasticFixture extends BeforeAndAfterAll { this: Suite => + private def useFixture(): Boolean = + !(System.getenv("TEST_USE_PRERUN_ELASTIC") == "true") + override def beforeAll() { - if (System.getenv("TEST_USE_PRERUN_ELASTIC") == null) { + if (useFixture()) { Process("docker-compose up -d kouta-elastic europass-s3").! Process("docker-compose up elasticdump-loader s3-configurator").! } } override def afterAll() { - if (System.getenv("TEST_USE_PRERUN_ELASTIC") == null) { + if (useFixture()) { Process("docker-compose down").! } } diff --git a/kouta-external/src/test/scala/fi/oph/kouta/external/TempElastic.scala b/kouta-external/src/test/scala/fi/oph/kouta/external/TempElastic.scala index 7df50efb..acfdf892 100644 --- a/kouta-external/src/test/scala/fi/oph/kouta/external/TempElastic.scala +++ b/kouta-external/src/test/scala/fi/oph/kouta/external/TempElastic.scala @@ -15,7 +15,7 @@ import org.testcontainers.elasticsearch.ElasticsearchContainer import org.testcontainers.utility.DockerImageName object TempElasticClient { - val useTestContainersElastic = (System.getenv("TEST_USE_PRERUN_ELASTIC") == null) + val useTestContainersElastic = !(System.getenv("TEST_USE_PRERUN_ELASTIC") == "true") var url = "" if (useTestContainersElastic) { url = s"http://localhost:${TempElastic.start()}"