Skip to content

Commit

Permalink
Filter build-info and modules properties (#57)
Browse files Browse the repository at this point in the history
  • Loading branch information
Or-Geva authored Mar 13, 2023
1 parent 33d43ec commit 56dc826
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 19 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

<properties>
<maven.min.version>3.3.9</maven.min.version>
<buildinfo.version>2.37.3</buildinfo.version>
<buildinfo.version>2.39.6</buildinfo.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,25 @@
import org.jfrog.build.extractor.clientConfiguration.IncludeExcludePatterns;
import org.jfrog.build.extractor.clientConfiguration.PatternMatcher;
import org.jfrog.build.extractor.clientConfiguration.deploy.DeployDetails;
import org.jfrog.build.extractor.packageManager.PackageManagerUtils;
import org.jfrog.buildinfo.resolution.RepositoryListener;
import org.jfrog.buildinfo.types.ModuleArtifacts;
import org.jfrog.buildinfo.utils.Utils;

import java.io.File;
import java.util.*;
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

import static org.jfrog.build.extractor.BuildInfoExtractorUtils.getModuleIdString;
import static org.jfrog.build.extractor.BuildInfoExtractorUtils.getTypeString;
import static org.jfrog.buildinfo.utils.Utils.*;
import static org.jfrog.buildinfo.utils.Utils.getArtifactName;
import static org.jfrog.buildinfo.utils.Utils.getDeploymentPath;
import static org.jfrog.buildinfo.utils.Utils.getFileExtension;
import static org.jfrog.buildinfo.utils.Utils.isFile;
import static org.jfrog.buildinfo.utils.Utils.setChecksums;

/**
* @author yahavi
Expand Down Expand Up @@ -152,14 +161,11 @@ public BuildInfo extract(ExecutionEvent event) {
if (session.getResult().hasExceptions()) {
return null;
}
if (conf.isIncludeEnvVars()) {
Properties envProperties = new Properties();
envProperties.putAll(conf.getAllProperties());
envProperties = BuildInfoExtractorUtils.getEnvProperties(envProperties, conf.getLog());
envProperties.forEach(buildInfoBuilder::addProperty);
}

long time = new Date().getTime() - session.getRequest().getStartTime().getTime();
return buildInfoBuilder.durationMillis(time).build();
BuildInfo buildInfo = buildInfoBuilder.durationMillis(time).build();
PackageManagerUtils.collectAndFilterEnvIfNeeded(conf, buildInfo);
return buildInfo;
}

public Set<Artifact> getCurrentModuleDependencies() {
Expand Down
6 changes: 3 additions & 3 deletions src/test/java/org/jfrog/buildinfo/BuildInfoRecorderTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.DefaultArtifact;
import org.apache.maven.execution.ExecutionEvent;
import org.jfrog.build.extractor.builder.BuildInfoBuilder;
import org.jfrog.build.extractor.ci.BuildInfo;
import org.jfrog.build.extractor.ci.Dependency;
import org.jfrog.build.extractor.ci.Module;
import org.jfrog.build.extractor.builder.BuildInfoBuilder;
import org.jfrog.buildinfo.deployment.BuildInfoRecorder;
import org.jfrog.buildinfo.types.TestExecutionEvent;
import org.junit.Before;
Expand Down Expand Up @@ -82,12 +82,12 @@ public void testProjectSucceeded() {

public void testExtract() {
Properties properties = new Properties();
properties.put(BUILD_INFO_ENVIRONMENT_PREFIX + "testPropertyKey", "testPropertyValue");
properties.put(BUILD_INFO_ENVIRONMENT_PREFIX + "testProperty", "testPropertyValue");
mojo.artifactory.delegate.fillFromProperties(properties);
BuildInfo build = buildInfoRecorder.extract(executionEvent);
assertNotNull(build);
assertTrue(build.getDurationMillis() > 0);
assertEquals("testPropertyValue", build.getProperties().get(BUILD_INFO_ENVIRONMENT_PREFIX + "testPropertyKey"));
assertEquals("testPropertyValue", build.getProperties().get(BUILD_INFO_ENVIRONMENT_PREFIX + "testProperty"));
}

public void testMojoSucceeded() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,12 @@
import java.io.FileFilter;
import java.io.IOException;
import java.nio.file.Files;
import java.util.*;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.Properties;

import static org.mockserver.model.HttpRequest.request;

Expand Down Expand Up @@ -107,28 +112,28 @@ private void testMultiModule(String projectName) throws Exception {
assertNotNull(parent);
assertEquals(MULTI_MODULE_ARTIFACTS.length, CollectionUtils.size(parent.getArtifacts()));
assertEquals(0, CollectionUtils.size(parent.getDependencies()));
assertEquals(4, CollectionUtils.size(parent.getProperties()));
assertEquals(5, CollectionUtils.size(parent.getProperties()));

// Check multi1
Module multi1 = build.getModule("org.jfrog.test:multi1:3.7-SNAPSHOT");
assertNotNull(multi1);
assertEquals(MULTI_MODULE_1_ARTIFACTS.length, CollectionUtils.size(multi1.getArtifacts()));
assertEquals(13, CollectionUtils.size(multi1.getDependencies()));
assertEquals(4, CollectionUtils.size(multi1.getProperties()));
assertEquals(5, CollectionUtils.size(multi1.getProperties()));

// Check multi2
Module multi2 = build.getModule("org.jfrog.test:multi2:3.7-SNAPSHOT");
assertNotNull(multi2);
assertEquals(MULTI_MODULE_2_ARTIFACTS.length, CollectionUtils.size(multi2.getArtifacts()));
assertEquals(1, CollectionUtils.size(multi2.getDependencies()));
assertEquals(5, CollectionUtils.size(multi2.getProperties()));
assertEquals(6, CollectionUtils.size(multi2.getProperties()));

// Check multi3
Module multi3 = build.getModule("org.jfrog.test:multi3:3.7-SNAPSHOT");
assertNotNull(multi1);
assertEquals(0, CollectionUtils.size(multi3.getArtifacts()));
assertEquals(15, CollectionUtils.size(multi3.getDependencies()));
assertEquals(5, CollectionUtils.size(multi3.getProperties()));
assertEquals(6, CollectionUtils.size(multi3.getProperties()));
}
}

Expand Down Expand Up @@ -167,7 +172,7 @@ private void runProject(String projectName) throws VerificationException, IOExce
verifier.setEnvironmentVariable("MAVEN_OPTS", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005");
}
verifier.getVerifierProperties().put("use.mavenRepoLocal", "false");
verifier.executeGoals(Lists.newArrayList("clean", "deploy", "-Dartifactory.plugin.version=" + getPluginVersion()));
verifier.executeGoals(Lists.newArrayList("clean", "deploy", "-Dartifactory.plugin.version=" + getPluginVersion(), "-s", "settings.xml"));
verifier.verifyErrorFreeLog();
}

Expand Down Expand Up @@ -229,6 +234,16 @@ private BuildInfo getAndAssertBuild(ClientAndServer mockServer) throws JsonProce
assertTrue(StringUtils.isNotBlank(build.getStarted()));
assertTrue(build.getDurationMillis() > 0);
assertFalse(build.getProperties().isEmpty());

// Check include exclude properties
Properties propertyExpectedToBeFiltered = new Properties();
Properties propertyIsNotExpectedToBeFiltered = new Properties();
propertyExpectedToBeFiltered.put("password", "password-password");
propertyIsNotExpectedToBeFiltered.put("username", "admin-admin");
// Check build properties exclude
assertFalse(build.getProperties().contains(propertyExpectedToBeFiltered));
// Check module properties exclude
build.getModules().forEach((value) -> assertFalse(value.getProperties().contains(propertyExpectedToBeFiltered)));
return build;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<settings>
<profiles>
<profile>
<id>artifactory-plugin-properties</id>
<properties>
<username>admin-admin</username>
<password>password-password</password>
</properties>
</profile>
</profiles>

<activeProfiles>
<activeProfile>artifactory-plugin-properties</activeProfile>
</activeProfiles>
</settings>

0 comments on commit 56dc826

Please sign in to comment.