Exemple #1
0
 protected override void DoWork(CancellationToken cancel)
 {
     while (!cancel.IsCancellationRequested)
     {
         Console.WriteLine("Fetching new builds from TFS");
         if (TFSHelper.TryGetNewBuildFromTFS(tfsBuilds))
         {
             Console.WriteLine("Found new builds");
             TFSHelper.WriteTFSBuildToFile(TFSBUILDFILE, tfsBuilds);
         }
         else
         {
             Console.WriteLine("No new builds");
         }
         Thread.Sleep(TFS_MONITOR_INTERVAL);
     }
 }
        protected override void DoWork(CancellationToken cancel)
        {
            while (!cancel.IsCancellationRequested)
            {
                try
                {
                    var build = FindNextTestNotFinished();
                    if (build == null)
                    {
                        Thread.Sleep(TEST_WAIT_INTERVAL);
                    }
                    else if (build.TestStatus == TestStatus.NotStart)
                    {
                        build.TestStatus = TestStatus.TestPrepare;
                        TFSHelper.WriteTFSBuildToFile(TFSBUILDFILE, tfsBuilds);
                        Console.WriteLine("Prepare test for {0}", build.TFSBuildNumber);
                    }
                    else if (build.TestStatus == TestStatus.TestPrepare)
                    {
                        string tag = build.ImageTag;
                        if (tag == null)
                        {
                            if (!TestHelper.BuildDockerImage(build.DropFolder, out tag))
                            {
                                build.TestStatus = TestStatus.Finished;
                                TFSHelper.WriteTFSBuildToFile(TFSBUILDFILE, tfsBuilds);
                                continue;
                            }
                            build.ImageTag = tag;
                            TFSHelper.WriteTFSBuildToFile(TFSBUILDFILE, tfsBuilds);
                        }
                        Console.WriteLine("Image tag for {0} is {1}", build.TFSBuildNumber, build.ImageTag);

                        build.TestStartTime = DateTimeOffset.Now;
                        build.TestTaskId    = TestHelper.StartTest(0, tag);
                        build.TestStatus    = TestStatus.Testing;
                        TFSHelper.WriteTFSBuildToFile(TFSBUILDFILE, tfsBuilds);
                        Console.WriteLine("Start testing {0} taskId = {1}", build.TFSBuildNumber, build.TestTaskId);
                    }
                    else if (build.TestStatus == TestStatus.Testing)
                    {
                        if (TestHelper.CheckFinished(build.TestTaskId))
                        {
                            build.TestFinishedTime = DateTimeOffset.Now;
                            build.TestStatus       = TestStatus.Finished;
                            TFSHelper.WriteTFSBuildToFile(TFSBUILDFILE, tfsBuilds);
                            Console.WriteLine("{0} finished", build.TFSBuildNumber);
                        }
                        else
                        {
                            Thread.Sleep(TEST_MONITOR_INTERVAL);
                        }
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    Thread.Sleep(TEST_WAIT_INTERVAL);
                }
            }
        }