diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 15d3986..0f93c4e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -10,7 +10,7 @@ on: branches: [ master ] jobs: - tests-ce: + tests-cartridge-container: runs-on: ubuntu-latest timeout-minutes: 25 strategy: @@ -26,19 +26,20 @@ jobs: cache: 'maven' - name: Build and run unit tests - run: ./mvnw -B verify -Djacoco.destFile=target/jacoco-ce.exec --file pom.xml + run: ./mvnw -B verify -Djacoco.destFile=target/jacoco-cartridge-container.exec --file pom.xml - name: Run integration tests env: TARANTOOL_SERVER_USER: root TARANTOOL_SERVER_GROUP: root - run: ./mvnw -B test -P integration -Djacoco.destFile=target/jacoco-ce.exec --file pom.xml + TARANTOOL_VERSION: "2.11.2-centos7" + run: ./mvnw -B test -P integration -Djacoco.destFile=target/jacoco-cartridge-container.exec --file pom.xml - name: Upload jacoco exec results uses: actions/upload-artifact@v2 with: - name: tests-ce-jacoco - path: "**/jacoco-ce.exec" + name: tests-cartridge-container-jacoco + path: "**/jacoco-cartridge-container.exec" tests-ee: runs-on: ubuntu-latest @@ -67,10 +68,40 @@ jobs: name: tests-ee-jacoco path: "**/jacoco-ee.exec" + tests-tarantool-container: + runs-on: ubuntu-latest + timeout-minutes: 25 + strategy: + matrix: + tarantool-version: [ "1.x-centos7", "2.11.2-centos7", "3.0.1" ] + fail-fast: false + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 1.8 + uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: '8' + cache: 'maven' + + - name: Build and run integration matrix tests + env: + TARANTOOL_VERSION: ${{ matrix.tarantool-version }} + TARANTOOL_SERVER_USER: root + TARANTOOL_SERVER_GROUP: root + run: ./mvnw -B test -P tarantool-container -Djacoco.destFile=target/jacoco-tarantool-container.exec --file pom.xml + + - name: Upload jacoco exec results + uses: actions/upload-artifact@v2 + with: + name: tests-tarantool-container-jacoco + path: "**/jacoco-tarantool-container.exec" + merge-jacoco-report: name: Jacoco Merge Results needs: - - tests-ce + - tests-cartridge-container - tests-ee runs-on: ubuntu-latest steps: @@ -85,7 +116,7 @@ jobs: - uses: actions/download-artifact@v2 with: - name: tests-ce-jacoco + name: tests-cartridge-container-jacoco path: . - uses: actions/download-artifact@v2 @@ -93,6 +124,11 @@ jobs: name: tests-ee-jacoco path: . + - uses: actions/download-artifact@v2 + with: + name: tests-tarantool-container-jacoco + path: . + - name: merge results run: | ./mvnw package jacoco:merge jacoco:report -DskipTests -Darguments=-DskipTests diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e51dab..4e38d84 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,7 @@ ([#55](https://github.com/tarantool/testcontainers-java-tarantool/issues/55)) - Change private modifier to protected modifier for fields and methods in TarantoolCartridgeContainer - Add `TARANTOOL_VERSION` environment variable support to TarantoolCartridgeContainer - `tarantool/tarantool:-centos7` if image name is omitted + `tarantool/tarantool:` if image name is omitted ([#102](https://github.com/tarantool/testcontainers-java-tarantool/pull/102)) ## [1.1.0] - 2023-12-12 diff --git a/pom.xml b/pom.xml index 83a134e..d754592 100644 --- a/pom.xml +++ b/pom.xml @@ -259,6 +259,7 @@ **/*EnterpriseIT.java + **/*TarantoolContainer*IT.java ${logging.config} @@ -364,6 +365,28 @@ + + tarantool-container + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M5 + + + **/*TarantoolContainer*IT.java + + + ${logging.config} + ${logging.logLevel} + + false + + + + + diff --git a/src/main/java/org/testcontainers/containers/TarantoolContainer.java b/src/main/java/org/testcontainers/containers/TarantoolContainer.java index e9d9856..98d48a6 100644 --- a/src/main/java/org/testcontainers/containers/TarantoolContainer.java +++ b/src/main/java/org/testcontainers/containers/TarantoolContainer.java @@ -18,8 +18,8 @@ public class TarantoolContainer extends GenericContainer implements TarantoolContainerOperations { public static final String TARANTOOL_IMAGE = "tarantool/tarantool"; - public static final String DEFAULT_IMAGE_VERSION = "2.10.5"; - public static final String DEFAULT_TARANTOOL_BASE_IMAGE = String.format("%s:%s-centos7", TARANTOOL_IMAGE, DEFAULT_IMAGE_VERSION); + public static final String DEFAULT_IMAGE_VERSION = "2.11.2-centos7"; + public static final String DEFAULT_TARANTOOL_BASE_IMAGE = String.format("%s:%s", TARANTOOL_IMAGE, DEFAULT_IMAGE_VERSION); private static final String DEFAULT_HOST = "localhost"; @@ -386,7 +386,7 @@ public T executeCommandDecoded(String command) throws Exception { private void setImageNameFromEnv() { String version = System.getenv("TARANTOOL_VERSION"); if (version != null && !version.trim().isEmpty()) { - setDockerImageName(String.format("%s:%s-centos7", TARANTOOL_IMAGE, version)); + setDockerImageName(String.format("%s:%s", TARANTOOL_IMAGE, version)); } } } diff --git a/src/main/java/org/testcontainers/containers/TarantoolContainerClientHelper.java b/src/main/java/org/testcontainers/containers/TarantoolContainerClientHelper.java index 242b041..3c847bc 100644 --- a/src/main/java/org/testcontainers/containers/TarantoolContainerClientHelper.java +++ b/src/main/java/org/testcontainers/containers/TarantoolContainerClientHelper.java @@ -25,6 +25,8 @@ public final class TarantoolContainerClientHelper { "Executed script %s with exit code %d, stderr: \"%s\", stdout: \"%s\""; private static final String EXECUTE_COMMAND_ERROR_TEMPLATE = "Executed command \"%s\" with exit code %d, stderr: \"%s\", stdout: \"%s\""; + // Generates bash command witch creates executable lua file with connection to required node + // and evaluation of needed lua code private static final String MTLS_COMMAND_TEMPLATE = "echo \" " + " print(require('yaml').encode( " + @@ -35,7 +37,8 @@ public final class TarantoolContainerClientHelper { " ):eval('%s')}) " + " ); " + " os.exit(); " + - "\" | tarantool"; + "\" > container-tmp.lua &&" + + " tarantool container-tmp.lua"; private static final String SSL_COMMAND_TEMPLATE = "echo \" " + " print(require('yaml').encode( " + @@ -45,7 +48,8 @@ public final class TarantoolContainerClientHelper { " ):eval('%s')}) " + " ); " + " os.exit(); " + - "\" | tarantool"; + "\" > container-tmp.lua &&" + + " tarantool container-tmp.lua"; private static final String COMMAND_TEMPLATE = "echo \" " + " print(require('yaml').encode( " + " {require('net.box').connect( " + @@ -54,7 +58,8 @@ public final class TarantoolContainerClientHelper { " ):eval('%s')}) " + " ); " + " os.exit(); " + - "\" | tarantool"; + "\" > container-tmp.lua &&" + + " tarantool container-tmp.lua"; TarantoolContainerClientHelper(TarantoolContainerOperations> container) { this.container = container; diff --git a/src/main/resources/Dockerfile b/src/main/resources/Dockerfile index bac5f19..31ae023 100644 --- a/src/main/resources/Dockerfile +++ b/src/main/resources/Dockerfile @@ -1,5 +1,5 @@ -ARG TARANTOOL_VERSION=2.11.0 -FROM tarantool/tarantool:${TARANTOOL_VERSION}-centos7 AS cartridge-base +ARG TARANTOOL_VERSION=2.11.2-centos7 +FROM tarantool/tarantool:${TARANTOOL_VERSION} AS cartridge-base # system preparations because docker mount directory as a root ARG TARANTOOL_SERVER_USER="root" diff --git a/src/test/java/org/testcontainers/containers/TarantoolStaticContainerIT.java b/src/test/java/org/testcontainers/containers/StaticTarantoolContainerIT.java similarity index 87% rename from src/test/java/org/testcontainers/containers/TarantoolStaticContainerIT.java rename to src/test/java/org/testcontainers/containers/StaticTarantoolContainerIT.java index ab8be5c..875c24d 100644 --- a/src/test/java/org/testcontainers/containers/TarantoolStaticContainerIT.java +++ b/src/test/java/org/testcontainers/containers/StaticTarantoolContainerIT.java @@ -13,10 +13,11 @@ * @author Ivan Dneprov */ @Testcontainers -public class TarantoolStaticContainerIT { +public class StaticTarantoolContainerIT { + protected static final String tarantoolVersion = System.getenv().get("TARANTOOL_VERSION"); @Container - private static final TarantoolContainer container = new TarantoolContainer(); + protected static final TarantoolContainer container = new TarantoolContainer(); @Test public void testExecuteCommand() throws Exception { diff --git a/src/test/java/org/testcontainers/containers/TarantoolContainerIT.java b/src/test/java/org/testcontainers/containers/TarantoolContainerIT.java index 12a3796..ef7f797 100644 --- a/src/test/java/org/testcontainers/containers/TarantoolContainerIT.java +++ b/src/test/java/org/testcontainers/containers/TarantoolContainerIT.java @@ -15,6 +15,7 @@ class TarantoolContainerIT { private static final String ENV_TARANTOOL_VERSION = "TARANTOOL_VERSION"; + protected static final String tarantoolVersion = System.getenv(ENV_TARANTOOL_VERSION); private void addEnv(String key, String value) throws NoSuchFieldException, IllegalAccessException { Class classOfMap = System.getenv().getClass(); @@ -73,31 +74,16 @@ public void testContainerWithParameters() throws Exception { @Test public void testContainerWithTrueVersion() throws Exception { - final String version = "2.11.0"; - addEnv(ENV_TARANTOOL_VERSION, version); - List result; try (TarantoolContainer container = new TarantoolContainer()) { container.start(); result = container.executeCommandDecoded("return _TARANTOOL"); } - removeEnv(ENV_TARANTOOL_VERSION, version); assertEquals(1, result.size()); - assertTrue(result.get(0).startsWith(version)); - } - - @Test - public void testContainerWithDefaultVersionVersion() throws Exception { - - List result; - try (TarantoolContainer container = new TarantoolContainer()) { - container.start(); - result = container.executeCommandDecoded("return _TARANTOOL"); + if (tarantoolVersion != null) { + assertTrue(result.get(0).startsWith(String.valueOf(tarantoolVersion.charAt(0)))); } - - assertEquals(1, result.size()); - assertTrue(result.get(0).startsWith(TarantoolContainer.DEFAULT_IMAGE_VERSION)); } @Test