diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 15d3986..33e66e1 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -28,12 +28,6 @@ jobs: - name: Build and run unit tests run: ./mvnw -B verify -Djacoco.destFile=target/jacoco-ce.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 - - name: Upload jacoco exec results uses: actions/upload-artifact@v2 with: @@ -67,6 +61,36 @@ jobs: name: tests-ee-jacoco path: "**/jacoco-ee.exec" + tests-matrix: + 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-mt.exec --file pom.xml + + - name: Upload jacoco exec results + uses: actions/upload-artifact@v2 + with: + name: tests-mt-jacoco + path: "**/jacoco-mt.exec" + merge-jacoco-report: name: Jacoco Merge Results needs: @@ -93,6 +117,11 @@ jobs: name: tests-ee-jacoco path: . + - uses: actions/download-artifact@v2 + with: + name: tests-mt-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..abd52a0 100644 --- a/pom.xml +++ b/pom.xml @@ -364,6 +364,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..8e9d5e1 100644 --- a/src/main/java/org/testcontainers/containers/TarantoolContainerClientHelper.java +++ b/src/main/java/org/testcontainers/containers/TarantoolContainerClientHelper.java @@ -35,7 +35,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 +46,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 +56,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/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..a845b71 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,23 +74,6 @@ 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(); @@ -97,7 +81,7 @@ public void testContainerWithDefaultVersionVersion() throws Exception { } assertEquals(1, result.size()); - assertTrue(result.get(0).startsWith(TarantoolContainer.DEFAULT_IMAGE_VERSION)); + assertTrue(result.get(0).startsWith(String.valueOf(tarantoolVersion.charAt(0)))); } @Test