Summary: For now i setup the CI using VSTS (Visual Studio Team Services) , i m using my own account, but i want to move this to a Travis setup so it would be easy ported to Facebook own build system. We can also take a look on how buck can help with this. Here's a overview of my dashboard for the build and release process on VSTS: <img width="1084" alt="screen shot 2017-02-16 at 23 52 07" src="https://cloud.githubusercontent.com/assets/1235097/23046869/ff4dcada-f4a3-11e6-8d09-fb8974fb58d4.png"> The all process is pretty simple, there's a few tricks here and there, but the basic steps are: <img width="1036" alt="builds" src="https://cloud.githubusercontent.com/assets/1235097/23046874/0cb95fc2-f4a4-11e6-8fd8-3048be7ffd9d.png"> These run for every commit and publish the artifacts, then the release lane takes that artifacts and builds a nuget, after that (and it's not implemented yet) we run UI Tests on devices Android , iOS for the nuget created and run tests on UWP and .net45 on both windows and OS X so Closes https://github.com/facebook/yoga/pull/408 Reviewed By: emilsjolander Differential Revision: D4576542 Pulled By: splhack fbshipit-source-id: 66e0e4c1cb3721ed7aa7118e4e226b6ec575fea8
59 lines
1.1 KiB
C#
59 lines
1.1 KiB
C#
/**
|
|
* Copyright 2014-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the license found in the
|
|
* LICENSE-examples file in the root directory of this source tree.
|
|
*/
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using AppKit;
|
|
using Foundation;
|
|
using GuiUnit;
|
|
using NUnit.Framework;
|
|
|
|
namespace Facebook.Yoga.Mac.Tests
|
|
{
|
|
static class MainClass
|
|
{
|
|
static void Main(string[] args)
|
|
{
|
|
NSApplication.Init();
|
|
RunTests();
|
|
}
|
|
|
|
static void RunTests()
|
|
{
|
|
TestRunner.MainLoop = new NSRunLoopIntegration();
|
|
List<string> args = new List<string>() { typeof(MainClass).Assembly.Location, "-labels", "-noheader", "-result=TEST-Mac.xml" };
|
|
|
|
|
|
TestRunner.Main(args.ToArray());
|
|
|
|
}
|
|
|
|
class NSRunLoopIntegration : NSObject, IMainLoopIntegration
|
|
{
|
|
public void InitializeToolkit()
|
|
{
|
|
}
|
|
|
|
public void RunMainLoop()
|
|
{
|
|
NSApplication.SharedApplication.Run();
|
|
}
|
|
|
|
public void InvokeOnMainLoop(InvokerHelper helper)
|
|
{
|
|
NSApplication.SharedApplication.InvokeOnMainThread(helper.Invoke);
|
|
}
|
|
|
|
public void Shutdown()
|
|
{
|
|
Environment.Exit(TestRunner.ExitCode);
|
|
}
|
|
}
|
|
}
|
|
}
|