Skip to content

Commit 2967e9f

Browse files
iDneprovArtDu
authored andcommitted
Add matrix tests
Add tarantool 3 support Add matrix tests with tarantool 1.x, 2.11.2 and 3.0.1 Change TARANTOOL_VERSION usage (remove -centos7 from template) Add tarantool-container profile for matrix tests Update DEFAULT_IMAGE_VERSION to 2.11.2 Closes #109
1 parent f9db043 commit 2967e9f

File tree

8 files changed

+86
-35
lines changed

8 files changed

+86
-35
lines changed

.github/workflows/tests.yml

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ on:
1010
branches: [ master ]
1111

1212
jobs:
13-
tests-ce:
13+
tests-cartridge-container:
1414
runs-on: ubuntu-latest
1515
timeout-minutes: 25
1616
strategy:
@@ -26,19 +26,20 @@ jobs:
2626
cache: 'maven'
2727

2828
- name: Build and run unit tests
29-
run: ./mvnw -B verify -Djacoco.destFile=target/jacoco-ce.exec --file pom.xml
29+
run: ./mvnw -B verify -Djacoco.destFile=target/jacoco-cartridge-container.exec --file pom.xml
3030

3131
- name: Run integration tests
3232
env:
3333
TARANTOOL_SERVER_USER: root
3434
TARANTOOL_SERVER_GROUP: root
35-
run: ./mvnw -B test -P integration -Djacoco.destFile=target/jacoco-ce.exec --file pom.xml
35+
TARANTOOL_VERSION: "2.11.2-centos7"
36+
run: ./mvnw -B test -P integration -Djacoco.destFile=target/jacoco-cartridge-container.exec --file pom.xml
3637

3738
- name: Upload jacoco exec results
3839
uses: actions/upload-artifact@v2
3940
with:
40-
name: tests-ce-jacoco
41-
path: "**/jacoco-ce.exec"
41+
name: tests-cartridge-container-jacoco
42+
path: "**/jacoco-cartridge-container.exec"
4243

4344
tests-ee:
4445
runs-on: ubuntu-latest
@@ -67,10 +68,40 @@ jobs:
6768
name: tests-ee-jacoco
6869
path: "**/jacoco-ee.exec"
6970

71+
tests-tarantool-container:
72+
runs-on: ubuntu-latest
73+
timeout-minutes: 25
74+
strategy:
75+
matrix:
76+
tarantool-version: [ "1.x-centos7", "2.11.2-centos7", "3.0.1" ]
77+
fail-fast: false
78+
steps:
79+
- uses: actions/checkout@v4
80+
81+
- name: Set up JDK 1.8
82+
uses: actions/setup-java@v3
83+
with:
84+
distribution: 'zulu'
85+
java-version: '8'
86+
cache: 'maven'
87+
88+
- name: Build and run integration matrix tests
89+
env:
90+
TARANTOOL_VERSION: ${{ matrix.tarantool-version }}
91+
TARANTOOL_SERVER_USER: root
92+
TARANTOOL_SERVER_GROUP: root
93+
run: ./mvnw -B test -P tarantool-container -Djacoco.destFile=target/jacoco-tarantool-container.exec --file pom.xml
94+
95+
- name: Upload jacoco exec results
96+
uses: actions/upload-artifact@v2
97+
with:
98+
name: tests-tarantool-container-jacoco
99+
path: "**/jacoco-tarantool-container.exec"
100+
70101
merge-jacoco-report:
71102
name: Jacoco Merge Results
72103
needs:
73-
- tests-ce
104+
- tests-cartridge-container
74105
- tests-ee
75106
runs-on: ubuntu-latest
76107
steps:
@@ -85,14 +116,19 @@ jobs:
85116

86117
- uses: actions/download-artifact@v2
87118
with:
88-
name: tests-ce-jacoco
119+
name: tests-cartridge-container-jacoco
89120
path: .
90121

91122
- uses: actions/download-artifact@v2
92123
with:
93124
name: tests-ee-jacoco
94125
path: .
95126

127+
- uses: actions/download-artifact@v2
128+
with:
129+
name: tests-tarantool-container-jacoco
130+
path: .
131+
96132
- name: merge results
97133
run: |
98134
./mvnw package jacoco:merge jacoco:report -DskipTests -Darguments=-DskipTests

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
([#55](https://github.com/tarantool/testcontainers-java-tarantool/issues/55))
1414
- Change private modifier to protected modifier for fields and methods in TarantoolCartridgeContainer
1515
- Add `TARANTOOL_VERSION` environment variable support to TarantoolCartridgeContainer
16-
`tarantool/tarantool:<TARANTOOL_VERSION>-centos7` if image name is omitted
16+
`tarantool/tarantool:<TARANTOOL_VERSION>` if image name is omitted
1717
([#102](https://github.com/tarantool/testcontainers-java-tarantool/pull/102))
1818

1919
## [1.1.0] - 2023-12-12

pom.xml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,7 @@
259259
</includes>
260260
<excludes>
261261
<exclude>**/*EnterpriseIT.java</exclude>
262+
<exclude>**/*TarantoolContainer*IT.java</exclude>
262263
</excludes>
263264
<systemPropertyVariables>
264265
<logback.configurationFile>${logging.config}</logback.configurationFile>
@@ -364,6 +365,28 @@
364365
</plugins>
365366
</build>
366367
</profile>
368+
<profile>
369+
<id>tarantool-container</id>
370+
<build>
371+
<plugins>
372+
<plugin>
373+
<groupId>org.apache.maven.plugins</groupId>
374+
<artifactId>maven-surefire-plugin</artifactId>
375+
<version>3.0.0-M5</version>
376+
<configuration>
377+
<includes>
378+
<include>**/*TarantoolContainer*IT.java</include>
379+
</includes>
380+
<systemPropertyVariables>
381+
<logback.configurationFile>${logging.config}</logback.configurationFile>
382+
<logLevel>${logging.logLevel}</logLevel>
383+
</systemPropertyVariables>
384+
<trimStackTrace>false</trimStackTrace>
385+
</configuration>
386+
</plugin>
387+
</plugins>
388+
</build>
389+
</profile>
367390
</profiles>
368391

369392
<distributionManagement>

src/main/java/org/testcontainers/containers/TarantoolContainer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ public class TarantoolContainer extends GenericContainer<TarantoolContainer>
1818
implements TarantoolContainerOperations<TarantoolContainer> {
1919

2020
public static final String TARANTOOL_IMAGE = "tarantool/tarantool";
21-
public static final String DEFAULT_IMAGE_VERSION = "2.10.5";
22-
public static final String DEFAULT_TARANTOOL_BASE_IMAGE = String.format("%s:%s-centos7", TARANTOOL_IMAGE, DEFAULT_IMAGE_VERSION);
21+
public static final String DEFAULT_IMAGE_VERSION = "2.11.2-centos7";
22+
public static final String DEFAULT_TARANTOOL_BASE_IMAGE = String.format("%s:%s", TARANTOOL_IMAGE, DEFAULT_IMAGE_VERSION);
2323

2424

2525
private static final String DEFAULT_HOST = "localhost";
@@ -386,7 +386,7 @@ public <T> T executeCommandDecoded(String command) throws Exception {
386386
private void setImageNameFromEnv() {
387387
String version = System.getenv("TARANTOOL_VERSION");
388388
if (version != null && !version.trim().isEmpty()) {
389-
setDockerImageName(String.format("%s:%s-centos7", TARANTOOL_IMAGE, version));
389+
setDockerImageName(String.format("%s:%s", TARANTOOL_IMAGE, version));
390390
}
391391
}
392392
}

src/main/java/org/testcontainers/containers/TarantoolContainerClientHelper.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ public final class TarantoolContainerClientHelper {
2525
"Executed script %s with exit code %d, stderr: \"%s\", stdout: \"%s\"";
2626
private static final String EXECUTE_COMMAND_ERROR_TEMPLATE =
2727
"Executed command \"%s\" with exit code %d, stderr: \"%s\", stdout: \"%s\"";
28+
// Generates bash command witch creates executable lua file with connection to required node
29+
// and evaluation of needed lua code
2830
private static final String MTLS_COMMAND_TEMPLATE =
2931
"echo \" " +
3032
" print(require('yaml').encode( " +
@@ -35,7 +37,8 @@ public final class TarantoolContainerClientHelper {
3537
" ):eval('%s')}) " +
3638
" ); " +
3739
" os.exit(); " +
38-
"\" | tarantool";
40+
"\" > container-tmp.lua &&" +
41+
" tarantool container-tmp.lua";
3942
private static final String SSL_COMMAND_TEMPLATE =
4043
"echo \" " +
4144
" print(require('yaml').encode( " +
@@ -45,7 +48,8 @@ public final class TarantoolContainerClientHelper {
4548
" ):eval('%s')}) " +
4649
" ); " +
4750
" os.exit(); " +
48-
"\" | tarantool";
51+
"\" > container-tmp.lua &&" +
52+
" tarantool container-tmp.lua";
4953
private static final String COMMAND_TEMPLATE = "echo \" " +
5054
" print(require('yaml').encode( " +
5155
" {require('net.box').connect( " +
@@ -54,7 +58,8 @@ public final class TarantoolContainerClientHelper {
5458
" ):eval('%s')}) " +
5559
" ); " +
5660
" os.exit(); " +
57-
"\" | tarantool";
61+
"\" > container-tmp.lua &&" +
62+
" tarantool container-tmp.lua";
5863

5964
TarantoolContainerClientHelper(TarantoolContainerOperations<? extends Container<?>> container) {
6065
this.container = container;

src/main/resources/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
ARG TARANTOOL_VERSION=2.11.0
2-
FROM tarantool/tarantool:${TARANTOOL_VERSION}-centos7 AS cartridge-base
1+
ARG TARANTOOL_VERSION=2.11.2-centos7
2+
FROM tarantool/tarantool:${TARANTOOL_VERSION} AS cartridge-base
33

44
# system preparations because docker mount directory as a root
55
ARG TARANTOOL_SERVER_USER="root"

src/test/java/org/testcontainers/containers/TarantoolStaticContainerIT.java renamed to src/test/java/org/testcontainers/containers/StaticTarantoolContainerIT.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@
1313
* @author Ivan Dneprov
1414
*/
1515
@Testcontainers
16-
public class TarantoolStaticContainerIT {
16+
public class StaticTarantoolContainerIT {
17+
protected static final String tarantoolVersion = System.getenv().get("TARANTOOL_VERSION");
1718

1819
@Container
19-
private static final TarantoolContainer container = new TarantoolContainer();
20+
protected static final TarantoolContainer container = new TarantoolContainer();
2021

2122
@Test
2223
public void testExecuteCommand() throws Exception {

src/test/java/org/testcontainers/containers/TarantoolContainerIT.java

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
class TarantoolContainerIT {
1616

1717
private static final String ENV_TARANTOOL_VERSION = "TARANTOOL_VERSION";
18+
protected static final String tarantoolVersion = System.getenv(ENV_TARANTOOL_VERSION);
1819

1920
private void addEnv(String key, String value) throws NoSuchFieldException, IllegalAccessException {
2021
Class<?> classOfMap = System.getenv().getClass();
@@ -73,31 +74,16 @@ public void testContainerWithParameters() throws Exception {
7374

7475
@Test
7576
public void testContainerWithTrueVersion() throws Exception {
76-
final String version = "2.11.0";
77-
addEnv(ENV_TARANTOOL_VERSION, version);
78-
7977
List<String> result;
8078
try (TarantoolContainer container = new TarantoolContainer()) {
8179
container.start();
8280
result = container.executeCommandDecoded("return _TARANTOOL");
8381
}
8482

85-
removeEnv(ENV_TARANTOOL_VERSION, version);
8683
assertEquals(1, result.size());
87-
assertTrue(result.get(0).startsWith(version));
88-
}
89-
90-
@Test
91-
public void testContainerWithDefaultVersionVersion() throws Exception {
92-
93-
List<String> result;
94-
try (TarantoolContainer container = new TarantoolContainer()) {
95-
container.start();
96-
result = container.executeCommandDecoded("return _TARANTOOL");
84+
if (tarantoolVersion != null) {
85+
assertTrue(result.get(0).startsWith(String.valueOf(tarantoolVersion.charAt(0))));
9786
}
98-
99-
assertEquals(1, result.size());
100-
assertTrue(result.get(0).startsWith(TarantoolContainer.DEFAULT_IMAGE_VERSION));
10187
}
10288

10389
@Test

0 commit comments

Comments
 (0)