[ignite-teamcity-bot] branch ignite-9848-3 updated: IGNITE-9848: Background upload of all builds from TC to the bot DB
This is an automated email from the ASF dual-hosted git repository. dpavlov pushed a commit to branch ignite-9848-3 in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git The following commit(s) were added to refs/heads/ignite-9848-3 by this push: new d19262f IGNITE-9848: Background upload of all builds from TC to the bot DB d19262f is described below commit d19262faf99f52645dbaf751f95f76c3e5c80fe5 Author: Dmitriy Pavlov AuthorDate: Mon Oct 29 17:56:30 2018 +0300 IGNITE-9848: Background upload of all builds from TC to the bot DB --- .../ignite/ci/tcbot/chain/BuildChainProcessor.java | 22 +++--- .../ignite/ci/teamcity/ignited/BuildRefDao.java| 10 ++ .../ci/teamcity/ignited/ITeamcityIgnited.java | 5 + .../ci/teamcity/ignited/TeamcityIgnitedImpl.java | 5 + 4 files changed, 31 insertions(+), 11 deletions(-) diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java index 07f5fe0..56a9bd1 100644 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java @@ -44,13 +44,13 @@ import org.apache.ignite.ci.analysis.mode.ProcessLogsMode; import org.apache.ignite.ci.di.AutoProfiling; import org.apache.ignite.ci.tcmodel.hist.BuildRef; import org.apache.ignite.ci.tcmodel.result.Build; +import org.apache.ignite.ci.teamcity.ignited.BuildRefDao; import org.apache.ignite.ci.teamcity.ignited.IStringCompactor; import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited; import org.apache.ignite.ci.teamcity.ignited.change.ChangeCompacted; import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted; import org.apache.ignite.ci.util.FutureUtil; import org.apache.ignite.ci.web.TcUpdatePool; -import org.apache.lucene.util.IntsRef; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; @@ -69,6 +69,8 @@ public class BuildChainProcessor { /** Compactor. */ @Inject private IStringCompactor compactor; +@Inject private BuildRefDao buildRefDao; + /** * @param teamcity Teamcity. * @param teamcityIgnited @@ -97,8 +99,8 @@ public class BuildChainProcessor { Map buildsCtxMap = new ConcurrentHashMap<>(); Stream uniqueBuldsInvolved = entryPoints.stream() -.flatMap(ref -> dependencies(teamcityIgnited, builds, teamcity, ref)).filter(Objects::nonNull) -.flatMap(ref -> dependencies(teamcityIgnited, builds, teamcity, ref)).filter(Objects::nonNull) +.flatMap(ref -> dependencies(teamcityIgnited, builds, ref)).filter(Objects::nonNull) +.flatMap(ref -> dependencies(teamcityIgnited, builds, ref)).filter(Objects::nonNull) .filter(ref -> ensureUnique(unique, ref)) ; @@ -283,10 +285,10 @@ public class BuildChainProcessor { return branch; } -@Nullable private static Stream dependencies( +@Nullable private Stream dependencies( ITeamcityIgnited teamcityIgnited, Map builds, -ITeamcity teamcity, BuildRef ref) { +BuildRef ref) { FatBuildCompacted buildCompacted = builds.get(ref.getId()); if (buildCompacted != null) return Stream.of(ref); // already processed build, so just keep current ID in stream @@ -298,12 +300,10 @@ public class BuildChainProcessor { int[] ints = build.snapshotDependencies(); -List deps = IntStream.of(ints).mapToObj(i-> { -BuildRef ref1 = new BuildRef(); -ref1.setId(i); - -return ref1; -}).collect(Collectors.toList()); +//todo +List deps = IntStream.of(ints).mapToObj(i -> { +return buildRefDao.getBuildRef(teamcityIgnited.serverId(), i); +}).filter(Objects::nonNull).collect(Collectors.toList()); if (deps.isEmpty()) return Stream.of(ref); diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/BuildRefDao.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/BuildRefDao.java index 92b1684..87439fa 100644 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/BuildRefDao.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/BuildRefDao.java @@ -230,4 +230,14 @@ public class BuildRefDao { return res.array(); } + +public BuildRef getBuildRef(String serverId, int i) { +BuildRefCompacted ref = buildRefsCache.get(buildIdToCacheKey( +ITeamcityIgnited.serverIdToInt(serverId), i)); + +if(ref==null) +return null; + +return ref.toBuildRef(compactor); +} }
[ignite-teamcity-bot] branch ignite-9848-3 updated: IGNITE-9848: Background upload of all builds from TC to the bot DB
This is an automated email from the ASF dual-hosted git repository. dpavlov pushed a commit to branch ignite-9848-3 in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git The following commit(s) were added to refs/heads/ignite-9848-3 by this push: new 6326920 IGNITE-9848: Background upload of all builds from TC to the bot DB 6326920 is described below commit 6326920c45aa73cab55d4426dbdd81243cfd3287 Author: Dmitriy Pavlov AuthorDate: Mon Oct 29 17:47:38 2018 +0300 IGNITE-9848: Background upload of all builds from TC to the bot DB --- .../java/org/apache/ignite/ci/db/DbMigrations.java | 8 ++-- .../ignite/ci/tcbot/chain/BuildChainProcessor.java | 45 +++--- .../ci/teamcity/ignited/BuildRefCompacted.java | 5 +++ .../ignited/fatbuild/FatBuildCompacted.java| 12 +- .../ignited/fatbuild/ProactiveFatBuildSync.java| 3 -- 5 files changed, 51 insertions(+), 22 deletions(-) diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/DbMigrations.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/DbMigrations.java index 6441ab1..824dc4a 100644 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/DbMigrations.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/db/DbMigrations.java @@ -404,10 +404,10 @@ public class DbMigrations { applyDestroyIgnCacheMigration(FINISHED_BUILDS_INCLUDE_FAILED); applyDestroyIgnCacheMigration(TEST_OCCURRENCE_FULL); -applyDestroyCacheMigration(TEAMCITY_BUILD_CACHE_NAME_OLD, TEAMCITY_BUILD_CACHE_NAME_OLD); applyDestroyIgnCacheMigration(TESTS); applyDestroyIgnCacheMigration(STAT); applyDestroyIgnCacheMigration(BUILD_STATISTICS); +applyDestroyCacheMigration(TEAMCITY_BUILD_CACHE_NAME_OLD, TEAMCITY_BUILD_CACHE_NAME_OLD); } private void applyDestroyIgnCacheMigration(String cacheName) { @@ -415,12 +415,12 @@ public class DbMigrations { applyDestroyCacheMigration(cacheName, ignCacheNme); } -private void applyDestroyCacheMigration(String dispCacheName, String ignCacheNme) { +private void applyDestroyCacheMigration(String dispCacheName, String cacheNme) { applyMigration("destroy-" + dispCacheName, () -> { -IgniteCache cache = ignite.cache(ignCacheNme); +IgniteCache cache = ignite.cache(cacheNme); if (cache == null) { -System.err.println("cache not found"); +System.err.println("cache [" + cacheNme + "] not found"); return; } diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java index fe26954..07f5fe0 100644 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java @@ -28,6 +28,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; import java.util.function.Function; import java.util.stream.Collectors; +import java.util.stream.IntStream; import java.util.stream.Stream; import javax.annotation.Nonnull; import javax.inject.Inject; @@ -49,6 +50,7 @@ import org.apache.ignite.ci.teamcity.ignited.change.ChangeCompacted; import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted; import org.apache.ignite.ci.util.FutureUtil; import org.apache.ignite.ci.web.TcUpdatePool; +import org.apache.lucene.util.IntsRef; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; @@ -89,18 +91,14 @@ public class BuildChainProcessor { if (entryPoints.isEmpty()) return new FullChainRunCtx(Build.createFakeStub()); -BuildRef next = entryPoints.iterator().next(); -Build results = teamcity.getBuild(next.href); -FullChainRunCtx fullChainRunCtx = new FullChainRunCtx(results); Map unique = new ConcurrentHashMap<>(); +Map builds = new ConcurrentHashMap<>(); Map buildsCtxMap = new ConcurrentHashMap<>(); Stream uniqueBuldsInvolved = entryPoints.stream() -.parallel() -.unordered() -.flatMap(ref -> dependencies(teamcity, ref)).filter(Objects::nonNull) -.flatMap(ref -> dependencies(teamcity, ref)).filter(Objects::nonNull) +.flatMap(ref -> dependencies(teamcityIgnited, builds, teamcity, ref)).filter(Objects::nonNull) +.flatMap(ref -> dependencies(teamcityIgnited, builds, teamcity, ref)).filter(Objects::nonNull) .filter(ref -> ensureUnique(unique, ref)) ; @@ -140,6 +138,12 @@ public class BuildChainProcessor { return runStat.getCriticalFailRate() * 3.14f +