diff --git a/README.md b/README.md index 9fd8d411c..5d9f14a10 100644 --- a/README.md +++ b/README.md @@ -91,6 +91,16 @@ export BITESTS_ARTIFACTORY_PIP_ENV=/Users/user/buildinfo-tests-env/bin #### Docker tests * Docker tests run only on Linux/mac. +* In addition to the general environment variables required for running the tests, you must set the following environment variables, required for the docker tests: + ```bash + export BITESTS_PLATFORM_CONTAINER_REGISTRY=127.0.0.1:8081 + export BITESTS_ARTIFACTORY_DOCKER_HOST=tcp://127.0.0.1:1234 + ``` +* For OSX agents, run a Socat container: + ```bash + docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 127.0.0.1:1234:1234 bobrik/socat TCP-LISTEN:1234,fork UNIX-CONNECT:/var/run/docker.sock + ``` +* Run tests: ```bash ./gradlew clean build-info-extractor-docker:test ``` diff --git a/build-info-extractor-docker/src/test/java/org/jfrog/build/extractor/docker/extractor/DockerExtractorTest.java b/build-info-extractor-docker/src/test/java/org/jfrog/build/extractor/docker/extractor/DockerExtractorTest.java index 112153ff9..88122867b 100644 --- a/build-info-extractor-docker/src/test/java/org/jfrog/build/extractor/docker/extractor/DockerExtractorTest.java +++ b/build-info-extractor-docker/src/test/java/org/jfrog/build/extractor/docker/extractor/DockerExtractorTest.java @@ -42,9 +42,11 @@ public class DockerExtractorTest extends IntegrationTestsBase { private static final String SHORT_IMAGE_TAG_LOCAL = "2"; private static final String SHORT_IMAGE_TAG_VIRTUAL = "3"; private static final String EXPECTED_REMOTE_PATH_KANIKO = "hello-world/latest"; + private static final String DOCKER_HOST = "BITESTS_ARTIFACTORY_DOCKER_HOST"; private final ArrayListMultimap artifactProperties = ArrayListMultimap.create(); private String pullImageFromVirtual; private String virtualDomainName; + private String host; private String imageTagLocal; private String imageTagVirtual; private String pullImageFromRemote; @@ -67,6 +69,7 @@ private void setUp() { if (SystemUtils.IS_OS_WINDOWS) { throw new SkipException("Skipping Docker tests on Windows OS"); } + host = System.getenv(DOCKER_HOST); String containerRegistry = readParam(new Properties(), "container_registry", "127.0.0.1:8081"); virtualDomainName = StringUtils.appendIfMissing(containerRegistry, "/") + virtualRepo; imageTagLocal = StringUtils.appendIfMissing(containerRegistry, "/") + localRepo1 + "/" + SHORT_IMAGE_NAME + ":" + SHORT_IMAGE_TAG_LOCAL; @@ -82,27 +85,27 @@ private void setUp() { @Test public void dockerPushToLocalTest() { - DockerJavaWrapper.buildImage(imageTagLocal, "", Collections.emptyMap(), PROJECT_PATH); - DockerPush dockerPush = new DockerPush(artifactoryManagerBuilder, imageTagLocal, "", artifactProperties, localRepo1, getUsername(), getAdminToken(), getLog(), Collections.emptyMap()); + DockerJavaWrapper.buildImage(imageTagLocal, host, Collections.emptyMap(), PROJECT_PATH); + DockerPush dockerPush = new DockerPush(artifactoryManagerBuilder, imageTagLocal, host, artifactProperties, localRepo1, getUsername(), getAdminToken(), getLog(), Collections.emptyMap()); pushAndValidateImage(dockerPush, localRepo1, imageTagLocal, SHORT_IMAGE_TAG_LOCAL); } @Test public void dockerPushToVirtualTest() { - DockerJavaWrapper.buildImage(imageTagVirtual, "", Collections.emptyMap(), PROJECT_PATH); - DockerPush dockerPush = new DockerPush(artifactoryManagerBuilder, imageTagVirtual, "", artifactProperties, virtualRepo, getUsername(), getAdminToken(), getLog(), Collections.emptyMap()); + DockerJavaWrapper.buildImage(imageTagVirtual, host, Collections.emptyMap(), PROJECT_PATH); + DockerPush dockerPush = new DockerPush(artifactoryManagerBuilder, imageTagVirtual, host, artifactProperties, virtualRepo, getUsername(), getAdminToken(), getLog(), Collections.emptyMap()); pushAndValidateImage(dockerPush, virtualRepo, imageTagVirtual, SHORT_IMAGE_TAG_VIRTUAL); } @Test public void dockerPullFromRemoteTest() { - DockerPull dockerPull = new DockerPull(artifactoryManagerBuilder, pullImageFromRemote, "", remoteRepo, getUsername(), getAdminToken(), getLog(), Collections.emptyMap()); + DockerPull dockerPull = new DockerPull(artifactoryManagerBuilder, pullImageFromRemote, host, remoteRepo, getUsername(), getAdminToken(), getLog(), Collections.emptyMap()); validatePulledDockerImage(dockerPull.execute(), pullImageFromRemote); } @Test public void dockerPullFromVirtualTest() { - DockerPull dockerPull = new DockerPull(artifactoryManagerBuilder, pullImageFromVirtual, "", virtualRepo, getUsername(), getAdminToken(), getLog(), Collections.emptyMap()); + DockerPull dockerPull = new DockerPull(artifactoryManagerBuilder, pullImageFromVirtual, host, virtualRepo, getUsername(), getAdminToken(), getLog(), Collections.emptyMap()); validatePulledDockerImage(dockerPull.execute(), pullImageFromVirtual); } @@ -227,7 +230,7 @@ private void validateImageArtifacts(List arts, String image) { } private String getImageId(String image) { - String id = DockerJavaWrapper.InspectImage(image, "", Collections.emptyMap(), getLog()).getId(); + String id = DockerJavaWrapper.InspectImage(image, host, Collections.emptyMap(), getLog()).getId(); assertNotNull(id); return id.replace(":", "__"); }