Skip to content

Commit cb93d0d

Browse files
Roman VasilevichArtDu
Roman Vasilevich
authored andcommitted
Add support for environment variable TARANTOOL_REGISTRY
1 parent 8f38c95 commit cb93d0d

25 files changed

+71
-575
lines changed

.github/workflows/tests.yml

Lines changed: 16 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ on:
99
pull_request:
1010
branches: [ master ]
1111

12+
env:
13+
TARANTOOL_REGISTRY: "registry.ps.tarantool.io/"
14+
TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX: "registry.ps.tarantool.io/"
15+
1216
jobs:
1317
tests-cartridge-container:
1418
runs-on: ubuntu-latest
@@ -25,6 +29,9 @@ jobs:
2529
java-version: '8'
2630
cache: 'maven'
2731

32+
- name: Docker login to private registry
33+
run: docker login "$TARANTOOL_REGISTRY" -u admin -p "${{ secrets.TARANTOOL_REGISTRY_PASSWORD }}"
34+
2835
- name: Build and run unit tests
2936
run: ./mvnw -B verify -Djacoco.destFile=target/jacoco-cartridge-container.exec --file pom.xml
3037

@@ -35,6 +42,9 @@ jobs:
3542
TARANTOOL_VERSION: "2.11.2-ubuntu20.04"
3643
run: ./mvnw -B test -P integration -Djacoco.destFile=target/jacoco-cartridge-container.exec --file pom.xml
3744

45+
- name: Print system images
46+
run: docker images
47+
3848
- name: Upload jacoco exec results
3949
uses: actions/upload-artifact@v4
4050
with:
@@ -43,35 +53,6 @@ jobs:
4353
retention-days: 5
4454
overwrite: true
4555

46-
tests-ee:
47-
runs-on: ubuntu-latest
48-
timeout-minutes: 20
49-
steps:
50-
- uses: actions/checkout@v4
51-
52-
- name: Set up JDK 1.8
53-
uses: actions/setup-java@v4
54-
with:
55-
distribution: 'zulu'
56-
java-version: '8'
57-
cache: 'maven'
58-
59-
- name: Run enterprise tests
60-
env:
61-
TARANTOOL_SERVER_USER: root
62-
TARANTOOL_SERVER_GROUP: root
63-
DOWNLOAD_HOST: https://tarantool:${{ secrets.DOWNLOAD_SDK_TOKEN }}@download.tarantool.io
64-
SDK_PATH: enterprise/release/linux/x86_64/2.11/tarantool-enterprise-sdk-nogc64-2.11.2-0-r609.linux.x86_64.tar.gz
65-
run: ./mvnw -B test -P enterprise -Djacoco.destFile=target/jacoco-ee.exec --file pom.xml
66-
67-
- name: Upload jacoco exec results
68-
uses: actions/upload-artifact@v4
69-
with:
70-
name: tests-ee-jacoco
71-
path: "**/jacoco-ee.exec"
72-
retention-days: 5
73-
overwrite: true
74-
7556
tests-tarantool-container:
7657
runs-on: ubuntu-latest
7758
timeout-minutes: 25
@@ -89,13 +70,19 @@ jobs:
8970
java-version: '8'
9071
cache: 'maven'
9172

73+
- name: Docker login to private registry
74+
run: docker login "$TARANTOOL_REGISTRY" -u admin -p "${{ secrets.TARANTOOL_REGISTRY_PASSWORD }}"
75+
9276
- name: Build and run integration matrix tests
9377
env:
9478
TARANTOOL_VERSION: ${{ matrix.tarantool-version }}
9579
TARANTOOL_SERVER_USER: root
9680
TARANTOOL_SERVER_GROUP: root
9781
run: ./mvnw -B test -P tarantool-container -Djacoco.destFile=target/jacoco-tarantool-container.exec --file pom.xml
9882

83+
- name: Print system images
84+
run: docker images
85+
9986
- name: Upload jacoco exec results
10087
uses: actions/upload-artifact@v4
10188
with:
@@ -108,7 +95,6 @@ jobs:
10895
name: Jacoco Merge Results
10996
needs:
11097
- tests-cartridge-container
111-
- tests-ee
11298
- tests-tarantool-container
11399
runs-on: ubuntu-latest
114100
steps:
@@ -126,11 +112,6 @@ jobs:
126112
name: tests-cartridge-container-jacoco
127113
path: .
128114

129-
- uses: actions/download-artifact@v4
130-
with:
131-
name: tests-ee-jacoco
132-
path: .
133-
134115
- uses: actions/download-artifact@v4
135116
with:
136117
name: tests-tarantool-container-jacoco
@@ -149,7 +130,6 @@ jobs:
149130
if-no-files-found: error
150131
overwrite: true
151132

152-
153133
- name: Jacoco Report to PR
154134
id: jacoco
155135
uses: madrapps/[email protected]

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
## [Unreleased]
44

5+
## [1.3.3] - 2024-05-06
6+
- Add support for environment variable `TARANTOOL_REGISTRY`
7+
- Remove enterprise tests
8+
9+
510
## [1.3.2] - 2024-04-25
611
- Fix NullPointerException during building docker image when images with null tags exist on a local machine.
712

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Add the Maven dependency:
1414
<dependency>
1515
<groupId>io.tarantool</groupId>
1616
<artifactId>testcontainers-java-tarantool</artifactId>
17-
<version>1.3.2</version>
17+
<version>1.3.3</version>
1818
</dependency>
1919
```
2020

pom.xml

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,6 @@
258258
<include>**/*IT.java</include>
259259
</includes>
260260
<excludes>
261-
<exclude>**/*EnterpriseIT.java</exclude>
262261
<exclude>**/*TarantoolContainer*IT.java</exclude>
263262
</excludes>
264263
<systemPropertyVariables>
@@ -271,29 +270,6 @@
271270
</plugins>
272271
</build>
273272
</profile>
274-
<profile>
275-
<id>enterprise</id>
276-
<build>
277-
<plugins>
278-
<plugin>
279-
<groupId>org.apache.maven.plugins</groupId>
280-
<artifactId>maven-surefire-plugin</artifactId>
281-
<version>3.0.0-M5</version>
282-
<configuration>
283-
<includes>
284-
<include>**/*TestEnterprise.java</include>
285-
<include>**/*EnterpriseIT.java</include>
286-
</includes>
287-
<systemPropertyVariables>
288-
<logback.configurationFile>${logging.config}</logback.configurationFile>
289-
<logLevel>${logging.logLevel}</logLevel>
290-
</systemPropertyVariables>
291-
<trimStackTrace>false</trimStackTrace>
292-
</configuration>
293-
</plugin>
294-
</plugins>
295-
</build>
296-
</profile>
297273
<profile>
298274
<id>release</id>
299275
<build>

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
public class TarantoolContainer extends GenericContainer<TarantoolContainer>
1818
implements TarantoolContainerOperations<TarantoolContainer> {
1919

20-
public static final String TARANTOOL_IMAGE = "tarantool/tarantool";
21-
public static final String DEFAULT_IMAGE_VERSION = "2.11.2-ubuntu20.04";
22-
public static final String DEFAULT_TARANTOOL_BASE_IMAGE = String.format("%s:%s", TARANTOOL_IMAGE, DEFAULT_IMAGE_VERSION);
20+
public static final String DEFAULT_IMAGE = "tarantool/tarantool";
21+
public static final String DEFAULT_TAG = "2.11.2-ubuntu20.04";
22+
public static final String DEFAULT_BASE_IMAGE = String.format("%s:%s", DEFAULT_IMAGE, DEFAULT_TAG);
2323

2424

2525
private static final String DEFAULT_HOST = "localhost";
@@ -50,7 +50,7 @@ public class TarantoolContainer extends GenericContainer<TarantoolContainer>
5050
* Constructor for {@link TarantoolContainer}
5151
*/
5252
public TarantoolContainer() {
53-
this(DEFAULT_TARANTOOL_BASE_IMAGE);
53+
this(DEFAULT_BASE_IMAGE);
5454
setImageNameFromEnv();
5555
}
5656

@@ -386,7 +386,11 @@ 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", TARANTOOL_IMAGE, version));
389+
String registry = System.getenv("TARANTOOL_REGISTRY");
390+
String image = registry == null || registry.isEmpty() ?
391+
DEFAULT_IMAGE :
392+
(registry.endsWith("/") ? registry + DEFAULT_IMAGE : registry + "/" + DEFAULT_IMAGE);
393+
setDockerImageName(String.format("%s:%s", image, version));
390394
}
391395
}
392396
}

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

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.io.File;
44
import java.util.Collections;
5+
import java.util.HashMap;
56
import java.util.Map;
67

78
/**
@@ -38,6 +39,17 @@ public TarantoolImageParams(String tag, File dockerfile, Map<String, String> bui
3839
this.buildArgs = buildArgs;
3940
}
4041

42+
/**
43+
* Custom constructor for tarantool image parameters
44+
*
45+
* @param tag docker image tag
46+
* @param dockerfile dockerfile for building custom tarantool image
47+
* @param baseImageName default image name for building docker image
48+
*/
49+
public TarantoolImageParams(String tag, File dockerfile, String baseImageName) {
50+
this(tag, dockerfile, extract(baseImageName));
51+
}
52+
4153
/**
4254
* Getter for sdk version
4355
*
@@ -64,4 +76,22 @@ public File getDockerfile() {
6476
Map<String, String> getBuildArgs() {
6577
return buildArgs;
6678
}
79+
80+
/**
81+
* Extract build arguments from environment variables
82+
*
83+
* @param defaultImage default image name for building docker image
84+
* @return map of building arguments
85+
*/
86+
private static Map<String, String> extract(String defaultImage) {
87+
final Map<String, String> buildArgs = new HashMap<>();
88+
String registry = System.getenv("TARANTOOL_REGISTRY");
89+
if (registry != null && !registry.isEmpty()) {
90+
buildArgs.put("IMAGE", registry.endsWith("/") ? registry + defaultImage : registry + "/" + defaultImage);
91+
}
92+
buildArgs.put("DOWNLOAD_HOST", System.getenv("DOWNLOAD_HOST"));
93+
buildArgs.put("SDK_PATH", System.getenv("SDK_PATH"));
94+
buildArgs.put("CLUSTER_SRC_DIR", "vshard_cluster");
95+
return buildArgs;
96+
}
6797
}

src/main/resources/Dockerfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
ARG TARANTOOL_VERSION=2.11.2-ubuntu20.04
2-
FROM tarantool/tarantool:${TARANTOOL_VERSION} AS cartridge-base
1+
ARG IMAGE="tarantool/tarantool"
2+
ARG TARANTOOL_VERSION="2.11.2-ubuntu20.04"
3+
FROM $IMAGE:$TARANTOOL_VERSION AS cartridge-base
34

45
ARG TARANTOOL_SERVER_USER="root"
56
ARG TARANTOOL_SERVER_GROUP="root"

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

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.junit.jupiter.api.Test;
99
import org.rnorth.ducttape.RetryCountExceededException;
1010
import org.slf4j.LoggerFactory;
11+
import org.testcontainers.containers.Container.ExecResult;
1112
import org.testcontainers.containers.exceptions.CartridgeTopologyException;
1213
import org.testcontainers.containers.output.Slf4jLogConsumer;
1314
import org.testcontainers.junit.jupiter.Container;
@@ -16,8 +17,6 @@
1617
import static org.junit.jupiter.api.Assertions.assertEquals;
1718
import static org.junit.jupiter.api.Assertions.assertFalse;
1819
import static org.junit.jupiter.api.Assertions.assertTrue;
19-
import org.testcontainers.containers.Container.ExecResult;
20-
2120

2221
/**
2322
* @author Alexey Kuzin
@@ -29,7 +28,7 @@ public class TarantoolCartridgeBootstrapFromLuaWithFixedPortsIT {
2928
private static final TarantoolCartridgeContainer container =
3029
new TarantoolCartridgeContainer(
3130
"Dockerfile",
32-
"cartridge",
31+
System.getenv().getOrDefault("TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX", "") + "cartridge",
3332
"cartridge/instances_fixedport.yml",
3433
"cartridge/topology_fixedport.lua")
3534
.withEnv("TARANTOOL_INSTANCES_FILE", "instances_fixedport.yml")
@@ -58,7 +57,7 @@ public void testTarantoolClusterCookieDefault() throws Exception {
5857
public void testTarantoolClusterCookieWithEnv() throws Exception {
5958
try(TarantoolCartridgeContainer newContainer = new TarantoolCartridgeContainer(
6059
"Dockerfile",
61-
"cartridge",
60+
System.getenv().getOrDefault("TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX", "") + "cartridge",
6261
"cartridge/instances.yml",
6362
"cartridge/replicasets.yml")
6463
.withEnv(TarantoolCartridgeContainer.ENV_TARANTOOL_CLUSTER_COOKIE, "secret")
@@ -86,7 +85,7 @@ public void test_retryingSetupTopology_shouldWork() {
8685
try (TarantoolCartridgeContainer testContainer =
8786
new TarantoolCartridgeContainer(
8887
"Dockerfile",
89-
"cartridge",
88+
System.getenv().getOrDefault("TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX", "") + "cartridge",
9089
"cartridge/instances.yml",
9190
"cartridge/incorrect_topology.lua")
9291
.withLogConsumer(new Slf4jLogConsumer(
@@ -120,7 +119,7 @@ public void testBuildArgs() throws Exception {
120119

121120
try(TarantoolCartridgeContainer newContainer = new TarantoolCartridgeContainer(
122121
"Dockerfile",
123-
"build_args_test",
122+
System.getenv().getOrDefault("TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX", "") + "build_args_test",
124123
"cartridge/instances.yml",
125124
"cartridge/replicasets.yml",
126125
buildArgs)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public class TarantoolCartridgeBootstrapFromYamlIT {
2222
private static final TarantoolCartridgeContainer container =
2323
new TarantoolCartridgeContainer(
2424
"Dockerfile",
25-
"cartridge",
25+
System.getenv().getOrDefault("TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX", "") + "cartridge",
2626
"cartridge/instances.yml",
2727
"cartridge/replicasets.yml")
2828
.withStartupTimeout(Duration.ofMinutes(5))

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public class TarantoolCartridgePortMappingIT {
2626
@Container
2727
private final static TarantoolCartridgeContainer container = new TarantoolCartridgeContainer(
2828
"Dockerfile",
29-
"mapping-ports-container",
29+
System.getenv().getOrDefault("TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX", "") + "mapping-ports-container",
3030
"cartridge/instances.yml",
3131
"cartridge/replicasets.yml")
3232
.withEnv(TarantoolCartridgeContainer.ENV_TARANTOOL_CLUSTER_COOKIE, "secret")

0 commit comments

Comments
 (0)