After I released yo VSTS people started asking for a port for Team Foundation Server (TFS). So to start the port I needed a TFS server to use. In this post I share the process of building that TFS server. You can use this as a check list for your current TFS installation to make sure it has everything ready to use yo TFS. You can also use this setup to contribute to yo TFS or demo it.
Below are the steps I took:
- Use Hyper-V and install Windows Server 2016 Standard
- Install Team Foundation Server 2017
- Configure your Team Foundation Server with the following settings using the wizard
- This is a new Team Foundation Server deployment
- New Deployment - Basic
- Install SQL Server Express
- Default
- I did not install and configure search
- Create a Personal Access Token
We will need this to give yo TFS access to TFS
- Install Docker Extension
This is required to build and publish Docker images and deploy Docker containers
At this point your TFS is ready for use and you now need to create a build machine. You can use the same machine or install your build agent on a different machine. Regardless if you are using the same or a different machine I assume the machine is a Windows Server 2016 machine.
- Enable .NET Framework 3.5 Features
This is going to be required by Web Deploy so we can deploy to Azure App Service
- Install NET Core SDK
- Install Azure PowerShell
- Install Node.js
- Using NPM (installed with Node.js) install Bower globally
npm install -g bower
- Docker Toolbox
- Install Java JDK
Make sure and set JAVA_HOME environment variable to point to C:\Program Files\Java\jdk1.8.0_112 to match your install
- Install Maven
Add Maven bin folder to your PATH environment variable
Create a Maven environment variable with the version of Maven as the value. This will register Maven as a capability of your agent.
Now you just need to install your build agent. I had mine run as the account I used to install all the tools. At this point you can target Azure App Service. If you want to target Docker you must stand up a Docker host as well.