This is an automated email from the ASF dual-hosted git repository. dpavlov pushed a commit to branch ignite-9542-new-run-stripe in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git
commit 023db5f8b0d4f64fbe6fdce4c804fee6151555a9 Merge: 9da280d cd87a55 Author: Dmitriy Pavlov <[email protected]> AuthorDate: Thu Nov 29 18:21:11 2018 +0300 Merge branch 'master' into ignite-9542-new-run-stripe # Conflicts: # ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java # ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java # ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedModule.java # ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/ChainAtServerCurrentStatus.java # ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java .../main/java/org/apache/ignite/ci/ITeamcity.java | 11 + .../apache/ignite/ci/IgnitePersistentTeamcity.java | 6 + .../apache/ignite/ci/IgniteTeamcityConnection.java | 11 +- .../main/java/org/apache/ignite/ci/TcHelper.java | 21 +- .../org/apache/ignite/ci/observer/BuildsInfo.java | 2 +- .../ci/tcbot/visa/ContributionCheckStatus.java | 23 +- .../tcbot/visa/TcBotTriggerAndSignOffService.java | 69 +- .../apache/ignite/ci/tcbot/visa/VisaStatus.java | 6 + .../apache/ignite/ci/tcmodel/conf/BuildType.java | 78 +- .../ignite/ci/tcmodel/conf/bt/BuildTypeFull.java | 33 +- .../ignite/ci/tcmodel/conf/bt/Parameters.java | 43 +- .../apache/ignite/ci/tcmodel/conf/bt/Property.java | 45 + .../ci/tcmodel/conf/bt/SnapshotDependencies.java | 39 + .../ci/tcmodel/conf/bt/SnapshotDependency.java | 60 ++ .../org/apache/ignite/ci/tcmodel/result/Build.java | 2 - .../ci/teamcity/ignited/ITeamcityIgnited.java | 31 + .../ci/teamcity/ignited/TeamcityIgnitedImpl.java | 38 +- .../ci/teamcity/ignited/TeamcityIgnitedModule.java | 6 + .../ignited/buildtype/BuildTypeCompacted.java | 197 ++++ .../teamcity/ignited/buildtype/BuildTypeDao.java | 226 +++++ .../ignited/buildtype/BuildTypeRefCompacted.java | 189 ++++ .../ignited/buildtype/BuildTypeRefDao.java | 251 +++++ .../teamcity/ignited/buildtype/BuildTypeSync.java | 249 +++++ .../ignited/buildtype/ParametersCompacted.java | 132 +++ .../buildtype/SnapshotDependencyCompacted.java | 131 +++ .../ignited/fatbuild/FatBuildCompacted.java | 6 +- .../ignite/ci/teamcity/pure/ITeamcityConn.java | 16 + .../conf/bt/Property.java => util/NumberUtil.java} | 38 +- .../model/current/ChainAtServerCurrentStatus.java | 3 +- .../ignite/ci/web/rest/visa/TcBotVisaService.java | 5 +- ignite-tc-helper-web/src/main/webapp/js/prs-1.0.js | 68 +- .../src/main/webapp/js/testfails-2.1.js | 23 +- ignite-tc-helper-web/src/main/webapp/prs.html | 2 + ignite-tc-helper-web/src/main/webapp/visas.html | 11 + .../ci/tcbot/chain/PrChainsProcessorTest.java | 4 +- .../ignited/IgnitedTcInMemoryIntegrationTest.java | 106 ++ .../src/test/resources/IgniteTests24Java8.xml | 27 + ...gniteTests24Java8_ActivateDeactivateCluster.xml | 156 +++ .../test/resources/IgniteTests24Java8_RunAll.xml | 1035 ++++++++++++++++++++ .../src/test/resources/IgniteTests24Java8_v2.xml | 26 + 40 files changed, 3313 insertions(+), 112 deletions(-) diff --cc ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java index e8486d5,97414a3..adf3be5 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java @@@ -20,12 -20,10 +20,14 @@@ import java.util.Collection import java.util.Date; import java.util.List; import javax.annotation.Nullable; + +import org.apache.ignite.ci.analysis.RunStat; +import org.apache.ignite.ci.analysis.SuiteInBranch; +import org.apache.ignite.ci.analysis.TestInBranch; import org.apache.ignite.ci.tcmodel.result.Build; import org.apache.ignite.ci.teamcity.ignited.buildcondition.BuildCondition; + import org.apache.ignite.ci.teamcity.ignited.buildtype.BuildTypeRefCompacted; + import org.apache.ignite.ci.teamcity.ignited.buildtype.BuildTypeCompacted; import org.apache.ignite.ci.teamcity.ignited.change.ChangeCompacted; import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted; import org.jetbrains.annotations.NotNull; @@@ -126,13 -126,32 +128,42 @@@ public interface ITeamcityIgnited */ @NotNull public List<Integer> getLastNBuildsFromHistory(String btId, String branchForTc, int cnt); + /** + * Return list of composite suite ids sorted by number of snapshot dependency. + * + * @param projectId Project id. + * @return List of composite buildType ids. + */ + public List<String> getCompositeBuildTypesIdsSortedByBuildNumberCounter(String projectId); + + /** + * Return list of compacted references to project suites. + * + * @param projectId Project id. + * @return List of compacted references to buildTypes. + */ + public List<BuildTypeRefCompacted> getAllBuildTypesCompacted(String projectId); + + + /** + * @param buildTypeId BuildType id. + * @return Compacted reference to BuildType. + */ + public BuildTypeRefCompacted getBuildTypeRef(String buildTypeId); + + /** + * @param buildTypeId BuildType id. + * @return BuildType compacted. + */ + public BuildTypeCompacted getBuildType(String buildTypeId); ++ + @Nullable public IRunHistory getTestRunHist(TestInBranch testInBranch); + + @Nullable public IRunHistory getSuiteRunHist(SuiteInBranch branch); + + /** + * @param suiteBuildTypeId Suite id. + * @return run statistics of recent runls on all branches. + */ + @Nullable public IRunStat getSuiteRunStatAllBranches(String suiteBuildTypeId); } diff --cc ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java index d5f139b,01702cf..df11962 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java @@@ -90,16 -94,19 +98,25 @@@ public class TeamcityIgnitedImpl implem /** Changes DAO. */ @Inject private ChangeDao changesDao; - /** Changes DAO. */ + /** Changes sync class. */ @Inject private ChangeSync changeSync; + /** BuildType reference DAO. */ + @Inject private BuildTypeRefDao buildTypeRefDao; + + /** BuildType DAO. */ + @Inject private BuildTypeDao buildTypeDao; + + /** BuildType DAO. */ + @Inject private BuildTypeSync buildTypeSync; + - /** Changes DAO. */ + /** Run history DAO. */ + @Inject private RunHistCompactedDao runHistCompactedDao; + + /** Run history sync. */ + @Inject private RunHistSync runHistSync; + + /** Strings compactor. */ @Inject private IStringCompactor compactor; /** Server ID mask for cache Entries. */ @@@ -114,10 -121,8 +131,9 @@@ buildConditionDao.init(); fatBuildDao.init(); changesDao.init(); + runHistCompactedDao.init(); } - @NotNull private String taskName(String taskName) { return ITeamcityIgnited.class.getSimpleName() +"." + taskName + "." + srvNme; @@@ -320,28 -325,28 +336,48 @@@ } /** {@inheritDoc} */ + @Nullable + @Override public IRunHistory getTestRunHist(TestInBranch testInBranch) { + return runHistCompactedDao.getTestRunHist(srvIdMaskHigh, testInBranch.name, testInBranch.branch); + } + + /** {@inheritDoc} */ + @Nullable + @Override public IRunHistory getSuiteRunHist(SuiteInBranch suiteInBranch) { + return runHistCompactedDao.getSuiteRunHist(srvIdMaskHigh, suiteInBranch.getSuiteId(), suiteInBranch.branch); + } + + /** {@inheritDoc} */ + @Nullable @Override public IRunStat getSuiteRunStatAllBranches(String suiteBuildTypeId) { + return runHistCompactedDao.getSuiteRunStatAllBranches(srvIdMaskHigh, suiteBuildTypeId); + } + + /** + * @param branchName Branch name. + */ ++ /** {@inheritDoc} */ + @Override public List<String> getCompositeBuildTypesIdsSortedByBuildNumberCounter(String projectId) { + return buildTypeSync.getCompositeBuildTypesIdsSortedByBuildNumberCounter(srvIdMaskHigh, projectId, conn); + } + + /** {@inheritDoc} */ + @Override public List<BuildTypeRefCompacted> getAllBuildTypesCompacted(String projectId) { + return buildTypeSync.getAllBuildTypesCompacted(srvIdMaskHigh, projectId, conn); + } + + /** {@inheritDoc} */ + @Override public BuildTypeRefCompacted getBuildTypeRef(String buildTypeId) { + return buildTypeRefDao.getBuildTypeRef(srvIdMaskHigh, buildTypeId); + } + + /** {@inheritDoc} */ + @Override public BuildTypeCompacted getBuildType(String buildTypeId) { + return buildTypeDao.getFatBuildType(srvIdMaskHigh, buildTypeId); + } + public List<String> branchForQuery(@Nullable String branchName) { if (ITeamcity.DEFAULT.equals(branchName)) - return Lists.newArrayList(branchName, "refs/heads/master", "master"); + return Lists.newArrayList(branchName, ITeamcity.REFS_HEADS_MASTER, "master"); else return Collections.singletonList(branchName); } diff --cc ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedModule.java index af78cef,690f87f..7a6ded0 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedModule.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedModule.java @@@ -44,8 -46,9 +47,11 @@@ public class TeamcityIgnitedModule exte bind(ProactiveFatBuildSync.class).in(new SingletonScope()); bind(ChangeSync.class).in(new SingletonScope()); bind(ChangeDao.class).in(new SingletonScope()); + bind(BuildTypeRefDao.class).in(new SingletonScope()); + bind(BuildTypeDao.class).in(new SingletonScope()); + bind(BuildTypeSync.class).in(new SingletonScope()); + bind(RunHistCompactedDao.class).in(new SingletonScope()); + bind(IStringCompactor.class).to(IgniteStringCompactor.class).in(new SingletonScope()); TcRestCachedModule module = new TcRestCachedModule(); diff --cc ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/ChainAtServerCurrentStatus.java index ee05245,0c023b0..975d8f6 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/ChainAtServerCurrentStatus.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/current/ChainAtServerCurrentStatus.java @@@ -28,11 -27,9 +28,12 @@@ import javax.annotation.Nullable import org.apache.ignite.ci.ITcAnalytics; import org.apache.ignite.ci.ITeamcity; import org.apache.ignite.ci.analysis.FullChainRunCtx; -import org.apache.ignite.ci.analysis.ITestFailures; +import org.apache.ignite.ci.analysis.IMultTestOccurrence; import org.apache.ignite.ci.analysis.MultBuildRunCtx; + import org.apache.ignite.ci.tcmodel.conf.BuildType; +import org.apache.ignite.ci.analysis.TestInBranch; +import org.apache.ignite.ci.teamcity.ignited.IRunHistory; +import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited; import org.apache.ignite.ci.util.CollectionUtil; import org.apache.ignite.internal.util.typedef.T2; diff --cc ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java index 1d7c835,6aa39bc..c472447 --- a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java +++ b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java @@@ -25,33 -25,33 +25,37 @@@ import java.io.FileWriter import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; +import java.util.*; + import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; import javax.xml.bind.JAXBException; + +import com.google.inject.internal.SingletonScope; import org.apache.ignite.Ignite; import org.apache.ignite.Ignition; +import org.apache.ignite.ci.ITeamcity; +import org.apache.ignite.ci.analysis.SuiteInBranch; +import org.apache.ignite.ci.analysis.TestInBranch; import org.apache.ignite.ci.db.TcHelperDb; import org.apache.ignite.ci.di.scheduler.DirectExecNoWaitSheduler; import org.apache.ignite.ci.di.scheduler.IScheduler; import org.apache.ignite.ci.di.scheduler.NoOpSheduler; +import org.apache.ignite.ci.tcbot.chain.PrChainsProcessorTest; import org.apache.ignite.ci.tcmodel.changes.ChangesList; import org.apache.ignite.ci.tcmodel.conf.BuildType; + import org.apache.ignite.ci.tcmodel.conf.Project; + import org.apache.ignite.ci.tcmodel.conf.bt.BuildTypeFull; import org.apache.ignite.ci.tcmodel.hist.BuildRef; import org.apache.ignite.ci.tcmodel.result.Build; import org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrence; import org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrences; import org.apache.ignite.ci.tcmodel.result.stat.Statistics; import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrencesFull; + import org.apache.ignite.ci.teamcity.ignited.buildtype.BuildTypeRefCompacted; import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted; import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildDao; +import org.apache.ignite.ci.teamcity.ignited.runhist.RunHistCompactedDao; +import org.apache.ignite.ci.teamcity.ignited.runhist.RunHistSync; import org.apache.ignite.ci.teamcity.pure.BuildHistoryEmulator; import org.apache.ignite.ci.teamcity.pure.ITeamcityHttpConnection; import org.apache.ignite.ci.user.ICredentialsProv;
