示例#1
0
            public void Snapshot_()
            {
                var client     = CreateBuildConfigClient();
                var dependency = new CreateSnapshotDependency("foo_service_Master", "FooCore_Master");

                client.CreateSnapshotDependency(dependency).Wait();
            }
示例#2
0
        public async Task CreateSnapshotDependency(CreateSnapshotDependency dependency)
        {
            Log.DebugFormat("API BuildConfig.CreateSnapshotDependency for: {0}, to: {0}", dependency.TargetBuildConfigId, dependency.DependencyBuildConfigId);

            string requestUri = string.Format("/app/rest/buildTypes/id:{0}", dependency.DependencyBuildConfigId);

            BuildConfigSummary buildConfig = await _http.Get <BuildConfigSummary>(requestUri);

            var dependencyDefinition = new DependencyDefinition
            {
                Id         = buildConfig.Id,
                Type       = "snapshot_dependency",
                Properties = new Properties
                {
                    Property = new PropertyList
                    {
                        new Property()
                        {
                            Name = "run-build-if-dependency-failed", Value = dependency.RunBuildIfDependencyFailed.ToString()
                        },
                        new Property()
                        {
                            Name = "run-build-if-dependency-failed-to-start", Value = dependency.RunBuildIfDependencyFailed.ToString()
                        },
                        new Property()
                        {
                            Name = "take-successful-builds-only", Value = dependency.TakeSuccessFulBuildsOnly.ToString()
                        },
                        new Property()
                        {
                            Name = "run-build-on-the-same-agent", Value = dependency.RunBuildOnTheSameAgent.ToString()
                        },
                        new Property()
                        {
                            Name = "take-started-build-with-same-revisions", Value = dependency.TakeStartedBuildWithSameRevisions.ToString()
                        },
                    }
                },
                SourceBuildConfig = buildConfig
            };

            await CreateDependency(dependency.TargetBuildConfigId, dependencyDefinition);
        }
示例#3
0
        public void Should_create_snapshot_dependency(IBuildConfigXmlClient buildConfigXmlClient, string dependencyBuildConfigId, bool takeStartedBuildWithSameRevisions, bool takeSuccessFulBuildsOnly)
        {
            var buildConfigXml = new BuildConfigXmlGenerator(buildConfigXmlClient, buildNonStubVersion: true).Create();

            var dependencyToCreate = new CreateSnapshotDependency(Arg.Any <string>(), dependencyBuildConfigId);

            dependencyToCreate.TakeStartedBuildWithSameRevisions = takeStartedBuildWithSameRevisions;
            dependencyToCreate.TakeSuccessFulBuildsOnly          = takeSuccessFulBuildsOnly;

            buildConfigXml.CreateSnapshotDependency(dependencyToCreate);

            var dependOnElement = (XmlElement)buildConfigXml.Xml.SelectSingleNode("/build-type/settings/dependencies/depend-on[@sourceBuildTypeId='" + dependencyBuildConfigId + "']");

            Assert.Equal(dependencyBuildConfigId, dependOnElement.Attributes["sourceBuildTypeId"].Value);

            var option1 = dependOnElement.SelectSingleNode("options/option[@name='take-started-build-with-same-revisions']").Attributes["value"].Value;

            Assert.Equal(takeStartedBuildWithSameRevisions.ToString().ToLower(), option1);

            var option2 = dependOnElement.SelectSingleNode("options/option[@name='take-successful-builds-only']").Attributes["value"].Value;

            Assert.Equal(takeSuccessFulBuildsOnly.ToString().ToLower(), option2);
        }
示例#4
0
 public BuildConfigXmlGenerator WithSnapshotDependency(CreateSnapshotDependency dependency)
 {
     BuildConfigXml.CreateSnapshotDependency(dependency);
     return(this);
 }