diff --git a/src/main/java/org/fedoraproject/javapackages/validator/Main.java b/src/main/java/org/fedoraproject/javapackages/validator/Main.java index f5b3dbe..5be50af 100644 --- a/src/main/java/org/fedoraproject/javapackages/validator/Main.java +++ b/src/main/java/org/fedoraproject/javapackages/validator/Main.java @@ -526,8 +526,13 @@ protected Map select(Map validators) throw return validators; } - protected List execute(Collection validators) throws Exception { + protected Iterable findRpms() throws Exception { var rpms = new ArrayList(); + Iterators.addAll(rpms, ArgFileIterator.create(parameters.argPaths)); + return rpms; + } + + protected List execute(Collection validators) throws Exception { /* parameters.argUrls.parallelStream().forEach(path -> { RpmPackage rpm; @@ -541,7 +546,7 @@ protected List execute(Collection validators) throws Exc } }); */ - Iterators.addAll(rpms, ArgFileIterator.create(parameters.argPaths)); + var rpms = findRpms(); var resultList = new ArrayList<>(validators).parallelStream().map(validator -> { var oldClassLoader = Thread.currentThread().getContextClassLoader(); try { diff --git a/src/main/java/org/fedoraproject/javapackages/validator/MainTmt.java b/src/main/java/org/fedoraproject/javapackages/validator/MainTmt.java index e363b84..d3208d9 100644 --- a/src/main/java/org/fedoraproject/javapackages/validator/MainTmt.java +++ b/src/main/java/org/fedoraproject/javapackages/validator/MainTmt.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.io.OutputStream; import java.io.PrintStream; +import java.net.URI; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; @@ -31,11 +32,16 @@ import org.fedoraproject.javapackages.validator.spi.Validator; import org.yaml.snakeyaml.Yaml; +import io.kojan.javadeptools.rpm.RpmPackage; + public class MainTmt extends Main { private Path TMT_TEST_DATA = null; private Path TMT_TREE = null; + private Optional TESTING_FARM_GIT_URL = Optional.empty(); private Map> additionalLogs = new TreeMap<>(); + private static final Pattern URL_PACKAGE_NAME_PATTERN = Pattern.compile(".*/rpms/(.*)"); + private static String getenv(String key) { var result = System.getenv(key); if (result == null) { @@ -47,13 +53,19 @@ private static String getenv(String key) { public static Main create() { var tmtTestData = Path.of(getenv("TMT_TEST_DATA")); var tmtTree = Path.of(getenv("TMT_TREE")); - return create(tmtTestData, tmtTree); + var testingFarmGitUrl = Optional.ofNullable(System.getenv("TESTING_FARM_GIT_URL")).map(URI::create); + return create(tmtTestData, tmtTree, testingFarmGitUrl); } public static Main create(Path tmtTestData, Path tmtTree) { + return create(tmtTestData, tmtTree, Optional.empty()); + } + + public static Main create(Path tmtTestData, Path tmtTree, Optional testingFarmGitUrl) { var result = new MainTmt(); result.TMT_TEST_DATA = tmtTestData; result.TMT_TREE = tmtTree; + result.TESTING_FARM_GIT_URL = testingFarmGitUrl; return result; } @@ -210,6 +222,24 @@ protected Map select(Map validators) throw return validators; } + @Override + protected Iterable findRpms() throws Exception { + logger.debug("TESTING_FARM_GIT_URL: {0}", Decorated.plain(TESTING_FARM_GIT_URL.map(String::valueOf).orElse(""))); + var rpms = new ArrayList(); + var it = ArgFileIterator.create(parameters.argPaths); + while (it.hasNext()) { + var rpm = it.next(); + if (TESTING_FARM_GIT_URL.isPresent()) { + var matcher = URL_PACKAGE_NAME_PATTERN.matcher(TESTING_FARM_GIT_URL.get().getPath()); + if (matcher.matches() && !matcher.group(1).equals(rpm.getInfo().getSourceName())) { + continue; + } + } + rpms.add(rpm); + } + return rpms; + } + private static String getFormattedDuration(Instant startTime, Instant endTime) { var duration = Duration.between(startTime, endTime); // TODO Wait for resolution within TF