Skip to content

Commit 03128b6

Browse files
author
Roman Vasilevich
committed
Add support for environment variable TARANTOOL_REGISTRY
1 parent 99035a6 commit 03128b6

25 files changed

+67
-568
lines changed

.github/workflows/tests.yml

+16-33
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,39 +42,15 @@ 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@v2
4050
with:
4151
name: tests-cartridge-container-jacoco
4252
path: "**/jacoco-cartridge-container.exec"
4353

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

71+
- name: Docker login to private registry
72+
run: docker login "$TARANTOOL_REGISTRY" -u admin -p "${{ secrets.TARANTOOL_REGISTRY_PASSWORD }}"
73+
8874
- name: Build and run integration matrix tests
8975
env:
9076
TARANTOOL_VERSION: ${{ matrix.tarantool-version }}
9177
TARANTOOL_SERVER_USER: root
9278
TARANTOOL_SERVER_GROUP: root
9379
run: ./mvnw -B test -P tarantool-container -Djacoco.destFile=target/jacoco-tarantool-container.exec --file pom.xml
9480

81+
- name: Print system images
82+
run: docker images
83+
9584
- name: Upload jacoco exec results
9685
uses: actions/upload-artifact@v2
9786
with:
@@ -102,7 +91,6 @@ jobs:
10291
name: Jacoco Merge Results
10392
needs:
10493
- tests-cartridge-container
105-
- tests-ee
10694
- tests-tarantool-container
10795
runs-on: ubuntu-latest
10896
steps:
@@ -120,11 +108,6 @@ jobs:
120108
name: tests-cartridge-container-jacoco
121109
path: .
122110

123-
- uses: actions/download-artifact@v2
124-
with:
125-
name: tests-ee-jacoco
126-
path: .
127-
128111
- uses: actions/download-artifact@v2
129112
with:
130113
name: tests-tarantool-container-jacoco

CHANGELOG.md

+5
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

+1-1
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

-24
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

+5-1
Original file line numberDiff line numberDiff line change
@@ -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().getOrDefault("TARANTOOL_REGISTRY", "");
390+
String image = !registry.isEmpty() ?
391+
(registry.endsWith("/") ? registry + TARANTOOL_IMAGE : registry + "/" + TARANTOOL_IMAGE) :
392+
TARANTOOL_IMAGE;
393+
setDockerImageName(String.format("%s:%s", image, version));
390394
}
391395
}
392396
}

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

+30
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

+3-2
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 TARANTOOL_VERSION="2.11.2-ubuntu20.04"
2+
ARG IMAGE_NAME="tarantool/tarantool:$TARANTOOL_VERSION"
3+
FROM $IMAGE_NAME AS cartridge-base
34

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

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

+5-6
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

+1-1
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

+1-1
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")

src/test/java/org/testcontainers/containers/enterprise/TarantoolMTlsContainerEnterpriseIT.java

-62
This file was deleted.

0 commit comments

Comments
 (0)