Why is latest Xamarin needed on local TFS server for CI? - xamarin

The requirements on the following page state that you need to install Visual Studio with Xamarin on your local TFS server to setup Xamarin CI builds:
https://developer.xamarin.com/guides/cross-platform/ci/intro_to_ci/
topography of the CI
This is a real pain. We have lots of developers that rely on our local TFS server, most of whom don't do any Xamarin development. As such, any changes are heavily scrutinized. This often leads to us not installing the latest VS/Xamarin releases, as it's considered too risky for this vital bit of infrastructure.
We could have a Windows build machine with VS and Xamarin installed, that is connected to a Mac build machine. We'd be free to update the Windows and Mac build machines regularly, without the fear of compromising the TFS server. Is this possible? If not, why not?
Thanks in advance.

That diagram can't be right. There is no reason why you'd need VS or Xamarin installed on your TFS app tier.
I think it's showing a simplified configuration where the Windows build agent is installed alongside the app tier. That is a supported setup but is never, ever recommended by anyone, for exactly the reasons why you don't want to do it.

The diagram is simplified. You don't need to install anything on your TFS server. What you do instead is to install a Build Agent on a separate machine or virtual machine.
The installation details for the TFS 2017 / VSTS build agent v2 can be found in the official visual studio documentation.
The procedure is similar for both TFS and VSTS, where you generate an access token in TFS/VSTS, then simply enter the url for the TFS/VSTS instance when running the build agent install script, along with the access token.
There are build agents for Windows, Linux and macOS, so it is up to you how you configure how iOS builds are made.

Related

Run VS-project on OSX

I want to join as a team member doing web design work in an ASP.NET/C# project.
The project is setup in Windows environment using TFS for source control.
However, I work on OSX and would love to be able to work in the project without having to setup a developing environment using Parallels or so.
Visual Studio Code seemed promising and I installed a TFS plug-in, but I have no idea how to connect to the project and run it on a http://localhost.
Is there a good way to do this?
(I am more of a designer than a tech person so please bear with me and my stupid questions :))
Thanks!
Visual Studio Code is certainly one way to view code in C#, but you can't really run it unless you're in .NET Core. I think you may be able to debug with Mono, so that might be worth a look first to see if your application is supported through that route. I've heard that Visual Studio will be available cross-platform sometime in the future (which will be amazing), but for now, the IDE is only available for Windows.
You can try using MonoDevelop which looks like a C# IDE for Mac (http://www.monodevelop.com/) and there's also Xamarin Studio (https://www.xamarin.com/studio). See this StackOverflow thread.
As for TFS, if you're using Git, you can easily connect to TFS using the server as a remote for your local repo (or clone the TFS instance onto your local machine), or you can use the command-line for Team Explorer Everywhere.

Should a Windows based build server get automatic updates installed?

I'm asking myself if it is a common practice to have automatic updates activated on build server with windows operating system. The build server uses jenkins, visual studio and java to drive the build. On the one hand I want a system that is clearly defined which software is installed. On the other I have a server that should have up to date patches installed.
What is a common practice?
In my previous company, we were using Windows to host the Jenkins master and all the slaves. We were building our code with Visual Studio 2010. We tested the automatic updates and it broke our configuration 2 times (in 3 years). So if you want to control your server's configuration, I recommend to apply the Microsoft patches manually (you can test the patches on a staging environment before applying the patch in production).

Migrate TFS 2008 to Visual studio online? (on build and security)

we uses on-premise tfs 2008 for source safe and build engine. The build script is heavily customized with msbuild scripts. Developers uses active directory to authenticate then queue a build.
We look around to go to Visual Studio Online, question
- the big concern is the build script, we don't really want to rewrite it, is it possible to use the current MSBuild project in the VSO build process?
- for authentication, how to integrate with the on-premise AD with the VSO? how to migrate the existing security project settings to the VSO?
Ok, so the answers to all of your questions is maybe 😊.
You can continue to use your on-premises build server with VSO. If you upgrade your agents to TF Build 2010 or 2013 servers you can plug them into VSO and build in the same way.
You may be able to use the cloud build agents if you don't need custom things installed on the build agents to compile. Probably best to stick with local agents for now.
For AD you can configure an Azure Active Directory (AAD) and wire it up to VSO. There is then a connector to sync your local AD with AAD (very easy) and enable single signe-on. There are fiddly bits but mostly strait forward.
http://nakedalm.com/use-corporate-identities-existing-vso-accounts/
I enabled it for my account but without the local AD sync as I don't have one.
I have a few customer that are on VSO and sync their local AD with AAD and are very happy.

How to Deploy On-Premises with Visual Studio Online Continuous Delivery

My team uses Visual Studio Online ("VSO") to manage our ALM.
We already have a push-button build-process in place to build code from our local Git repo (remotely) and deploy it to a Microsoft Azure Website on Azure.
In addition to this we want a local, development-testing environment built and deployed with a push of a button.
What is the best way to integrate an automated, on-premises development-testing deployment into our development pipeline from within VSO's ALM ecosystem?
[We do also own TFS 2012 -- is there a way to leverage it from VSO to drive an on-premises build deployment from our VSO git repo?]
To deploy builds on-premise, I installed an on-premise build server and used it as the default build controller in my build definition.
When installing the build server select your Visual Studio Online url to point the build server to your team project collection.
I used the instructions here
http://myalmblog.com/2014/04/configuring-on-premises-build-server-for-visual-studio-online/
(normal issues when installing a build server remember to copy over your MSbuild folder from a machine with Visual Studio already installed etc...)
I know it's been a while since the question was asked, but this guy did it with an extension to be added to your VSTS account to deploy directly to an on-premise IIS. I'm going to check this solution today but I'm pretty sure it will work.
https://blogs.msdn.microsoft.com/monub/2016/01/20/visual-studio-team-services-release-management-iis-web-deployment-vnext/
UPDATE
Better yet, MSDN released a complete doc for deploying an asp.net app on IIS
https://www.visualstudio.com/en-us/docs/release/examples/other-servers/net-to-vm

Visual Studio on Production

Does Visual Studio need to be installed on a production server?
My question is I need it to perform some task like (providers to connect to oracle for example) or only .net framework?
You would need only the appropriate .NET framework version on the production server. Then you can deploy your code, which was developed in some internal server, to the production server.
It's not needed at all. In fact, at most places I've seen Visual Studio is either implicitly or explicitly forbidden from production servers.
Apps that won't seem to run without VS having been installed usually just need some runtimes.

Resources