Exemplo n.º 1
0
        async Task ImportVstsReleasesDataAsync(ReleaseManagement releaseManagement, string branch, ReleaseDefinitionId releaseDefinitionId)
        {
            Console.WriteLine($"Import VSTS releases from branch [{branch}] started at {DateTime.UtcNow}.");

            SqlConnection sqlConnection = null;

            try
            {
                sqlConnection = new SqlConnection(this.dbConnectionString);
                sqlConnection.Open();

                List <IoTEdgeRelease> releaseResults = await releaseManagement.GetReleasesAsync(releaseDefinitionId, branch, 200);

                Console.WriteLine($"Query VSTS releases for branch [{branch}] and release definition [{releaseDefinitionId.ToString()}]: result count={releaseResults.Count} at {DateTime.UtcNow}.");

                int releaseCount = 0;

                foreach (IoTEdgeRelease release in releaseResults.Where(r => r.HasResult()))
                {
                    UpsertVstsReleaseToDb(sqlConnection, release);

                    foreach (KeyValuePair <int, string> kvp in ReleaseEnvironment.DefinitionIdToDisplayNameMapping)
                    {
                        IoTEdgeReleaseEnvironment releaseEnvironment = release.GetEnvironment(kvp.Key);

                        if (releaseEnvironment.HasResult())
                        {
                            UpsertVstsReleaseEnvironmentToDb(sqlConnection, release.Id, releaseEnvironment, kvp.Value);

                            foreach (IoTEdgeReleaseDeployment deployment in releaseEnvironment.Deployments)
                            {
                                UpsertVstsReleaseDeploymentToDb(sqlConnection, releaseEnvironment.Id, deployment);

                                const string testTaskPrefix = "Test:";

                                foreach (IoTEdgePipelineTask pipelineTask in deployment.Tasks.Where(x => IsTestTask(x, testTaskPrefix)))
                                {
                                    UpsertVstsReleaseTaskToDb(sqlConnection, deployment.Id, pipelineTask, testTaskPrefix);
                                }
                            }
                        }
                    }

                    releaseCount++;

                    if (releaseCount % 10 == 0)
                    {
                        Console.WriteLine($"Query VSTS releases for branch [{branch}] and release definition [{releaseDefinitionId.ToString()}]: release count={releaseCount} at {DateTime.UtcNow}.");
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                sqlConnection?.Close();
            }
        }
Exemplo n.º 2
0
        public void TestProperties()
        {
            var release = new IoTEdgeRelease(
                123213,
                ReleaseDefinitionId.E2ETest,
                "test-release",
                "branch1",
                VstsReleaseStatus.Active,
                new Uri("http://abc.com/test/uri"),
                new HashSet <IoTEdgeReleaseEnvironment>
            {
                new IoTEdgeReleaseEnvironment(3423, 8790, "Any name", VstsEnvironmentStatus.NotStarted, new HashSet <IoTEdgeReleaseDeployment>()),
                new IoTEdgeReleaseEnvironment(784, 23903, "Any name", VstsEnvironmentStatus.InProgress, new HashSet <IoTEdgeReleaseDeployment>())
            });

            Assert.AreEqual(123213, release.Id);
            Assert.AreEqual(ReleaseDefinitionId.E2ETest, release.DefinitionId);
            Assert.AreEqual("test-release", release.Name);
            Assert.AreEqual("http://abc.com/test/uri", release.WebUri.AbsoluteUri);
            Assert.AreEqual(2, release.NumberOfEnvironments);
            IoTEdgeReleaseEnvironment env1 = release.GetEnvironment(8790);

            Assert.AreEqual(3423, env1.Id);
            IoTEdgeReleaseEnvironment env2 = release.GetEnvironment(23903);

            Assert.AreEqual(784, env2.Id);
        }
Exemplo n.º 3
0
        public void TestCreateEnvironmentWithNoResult()
        {
            IoTEdgeReleaseEnvironment releaseEnv = IoTEdgeReleaseEnvironment.CreateEnvironmentWithNoResult(38942);

            Assert.AreEqual(0, releaseEnv.Id);
            Assert.AreEqual(38942, releaseEnv.DefinitionId);
            Assert.AreEqual(VstsEnvironmentStatus.Undefined, releaseEnv.Status);
        }
Exemplo n.º 4
0
        public void TestProperties()
        {
            var releaseEnv = new IoTEdgeReleaseEnvironment(3242, 343406, "AMD64", VstsEnvironmentStatus.Queued);

            Assert.AreEqual(3242, releaseEnv.Id);
            Assert.AreEqual(343406, releaseEnv.DefinitionId);
            Assert.AreEqual(VstsEnvironmentStatus.Queued, releaseEnv.Status);
        }
Exemplo n.º 5
0
        public void TestCreate()
        {
            var vstsReleaseEnv = new VstsReleaseEnvironment {
                Id = 83429, DefinitionId = 2349080, Status = VstsEnvironmentStatus.Rejected
            };

            IoTEdgeReleaseEnvironment releaseEnv = IoTEdgeReleaseEnvironment.Create(vstsReleaseEnv);

            Assert.AreEqual(83429, releaseEnv.Id);
            Assert.AreEqual(2349080, releaseEnv.DefinitionId);
            Assert.AreEqual(VstsEnvironmentStatus.Rejected, releaseEnv.Status);
        }
Exemplo n.º 6
0
        public void TestGetEnvironment()
        {
            var release = new IoTEdgeRelease(
                123213,
                343406,
                "test-release",
                new Uri("http://abc.com/test/uri"),
                new HashSet <IoTEdgeReleaseEnvironment>
            {
                new IoTEdgeReleaseEnvironment(3423, 8790, VstsEnvironmentStatus.NotStarted),
                new IoTEdgeReleaseEnvironment(784, 23903, VstsEnvironmentStatus.InProgress),
                new IoTEdgeReleaseEnvironment(38934, 23903, VstsEnvironmentStatus.Succeeded)
            });

            Assert.AreEqual(3423, release.GetEnvironment(8790).Id);
            Assert.AreEqual(784, release.GetEnvironment(23903).Id);
            Assert.AreEqual(IoTEdgeReleaseEnvironment.CreateEnvironmentWithNoResult(9999), release.GetEnvironment(9999));
        }
Exemplo n.º 7
0
        public void TestGetEnvironment()
        {
            var release = new IoTEdgeRelease(
                123213,
                ReleaseDefinitionId.E2ETest,
                "test-release",
                "branch1",
                VstsReleaseStatus.Active,
                new Uri("http://abc.com/test/uri"),
                new HashSet <IoTEdgeReleaseEnvironment>
            {
                new IoTEdgeReleaseEnvironment(3423, 8790, "Any name", VstsEnvironmentStatus.NotStarted, new HashSet <IoTEdgeReleaseDeployment>()),
                new IoTEdgeReleaseEnvironment(784, 23903, "Any name", VstsEnvironmentStatus.InProgress, new HashSet <IoTEdgeReleaseDeployment>()),
                new IoTEdgeReleaseEnvironment(38934, 23903, "Any name", VstsEnvironmentStatus.Succeeded, new HashSet <IoTEdgeReleaseDeployment>())
            });

            Assert.AreEqual(3423, release.GetEnvironment(8790).Id);
            Assert.AreEqual(784, release.GetEnvironment(23903).Id);
            Assert.AreEqual(IoTEdgeReleaseEnvironment.CreateEnvironmentWithNoResult(9999), release.GetEnvironment(9999));
        }
Exemplo n.º 8
0
        public void TestEquals()
        {
            var releaseEnv1 = new IoTEdgeReleaseEnvironment(3242, 343406, "Linux AMD64", VstsEnvironmentStatus.Queued);
            var releaseEnv2 = new IoTEdgeReleaseEnvironment(3242, 343406, "Linux AMD64", VstsEnvironmentStatus.Queued);
            var releaseEnv3 = new IoTEdgeReleaseEnvironment(9708, 343406, "Linux ARM64", VstsEnvironmentStatus.Queued);
            var releaseEnv4 = new IoTEdgeReleaseEnvironment(3242, 84893, "Windows X64", VstsEnvironmentStatus.Queued);
            var releaseEnv5 = new IoTEdgeReleaseEnvironment(3242, 343406, "Windows Server Core", VstsEnvironmentStatus.Succeeded);

            Assert.False(releaseEnv1.Equals(null));
            Assert.True(releaseEnv1.Equals(releaseEnv1));
            Assert.True(releaseEnv1.Equals(releaseEnv2));

            Assert.False(releaseEnv1.Equals((object)null));
            Assert.True(releaseEnv1.Equals((object)releaseEnv1));
            Assert.True(releaseEnv1.Equals((object)releaseEnv2));
            Assert.False(releaseEnv1.Equals(new object()));

            Assert.False(releaseEnv1.Equals(releaseEnv3));
            Assert.False(releaseEnv1.Equals(releaseEnv4));
            Assert.False(releaseEnv1.Equals(releaseEnv5));
        }
Exemplo n.º 9
0
        async Task ImportVstsReleasesDataAsync(ReleaseManagement releaseManagement, string branch, ReleaseDefinitionId releaseDefinitionId)
        {
            SqlConnection sqlConnection = null;

            try
            {
                sqlConnection = new SqlConnection(this.dbConnectionString);
                sqlConnection.Open();

                List <IoTEdgeRelease> releaseResults = await releaseManagement.GetReleasesAsync(releaseDefinitionId, branch, 200);

                Console.WriteLine($"Query VSTS for branch [{branch}] and release definition [{releaseDefinitionId.ToString()}]: result count={releaseResults.Count}");

                foreach (IoTEdgeRelease release in releaseResults.Where(r => r.HasResult()))
                {
                    UpsertVstsReleaseToDb(sqlConnection, release);

                    foreach (KeyValuePair <int, string> kvp in ReleaseEnvironment.DefinitionIdToDisplayNameMapping)
                    {
                        IoTEdgeReleaseEnvironment releaseEnvironment = release.GetEnvironment(kvp.Key);

                        if (releaseEnvironment.HasResult())
                        {
                            UpsertVstsReleaseEnvironmentToDb(sqlConnection, release.Id, releaseEnvironment, kvp.Value);
                        }
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                sqlConnection?.Close();
            }
        }
        public void TestEquals()
        {
            DateTime deploymentStartTime = DateTime.UtcNow;
            var      releaseEnv1         = new IoTEdgeReleaseEnvironment(3242, 343406, "Linux AMD64", VstsEnvironmentStatus.Queued, TestUtil.GetDeployments(1, deploymentStartTime));
            var      releaseEnv2         = new IoTEdgeReleaseEnvironment(3242, 343406, "Linux AMD64", VstsEnvironmentStatus.Queued, TestUtil.GetDeployments(1, deploymentStartTime));
            var      releaseEnv3         = new IoTEdgeReleaseEnvironment(9708, 343406, "Linux ARM64", VstsEnvironmentStatus.Queued, TestUtil.GetDeployments(1, deploymentStartTime));
            var      releaseEnv4         = new IoTEdgeReleaseEnvironment(3242, 84893, "Windows X64", VstsEnvironmentStatus.Queued, TestUtil.GetDeployments(1, deploymentStartTime));
            var      releaseEnv5         = new IoTEdgeReleaseEnvironment(3242, 343406, "Windows Server Core", VstsEnvironmentStatus.Succeeded, TestUtil.GetDeployments(1, deploymentStartTime));
            var      releaseEnv6         = new IoTEdgeReleaseEnvironment(3242, 343406, "Windows Server Core", VstsEnvironmentStatus.Succeeded, TestUtil.GetDeployments(2, deploymentStartTime));

            Assert.False(releaseEnv1.Equals(null));
            Assert.True(releaseEnv1.Equals(releaseEnv1));
            Assert.True(releaseEnv1.Equals(releaseEnv2));

            Assert.False(releaseEnv1.Equals((object)null));
            Assert.True(releaseEnv1.Equals((object)releaseEnv1));
            Assert.True(releaseEnv1.Equals((object)releaseEnv2));
            Assert.False(releaseEnv1.Equals(new object()));

            Assert.False(releaseEnv1.Equals(releaseEnv3));
            Assert.False(releaseEnv1.Equals(releaseEnv4));
            Assert.False(releaseEnv1.Equals(releaseEnv5));
            Assert.False(releaseEnv5.Equals(releaseEnv6));
        }
Exemplo n.º 11
0
        void UpsertVstsReleaseEnvironmentToDb(SqlConnection sqlConnection, int releaseId, IoTEdgeReleaseEnvironment environment, string envrionmentName)
        {
            var cmd = new SqlCommand
            {
                Connection  = sqlConnection,
                CommandType = System.Data.CommandType.StoredProcedure,
                CommandText = "UpsertVstsReleaseEnvironment"
            };

            cmd.Parameters.Add(new SqlParameter("@Id", environment.Id));
            cmd.Parameters.Add(new SqlParameter("@ReleaseId", releaseId));
            cmd.Parameters.Add(new SqlParameter("@DefinitionId", environment.DefinitionId));
            cmd.Parameters.Add(new SqlParameter("@DefinitionName", envrionmentName));
            cmd.Parameters.Add(new SqlParameter("@Status", environment.Status.ToString()));
            cmd.ExecuteNonQuery();
        }
Exemplo n.º 12
0
        public void TestGetHashCode()
        {
            var releaseEnv = new IoTEdgeReleaseEnvironment(3242, 343406, "Any Name", VstsEnvironmentStatus.Queued);

            Assert.AreEqual(3242, releaseEnv.GetHashCode());
        }