Linux Build Server for Visual Studio Online (VSTS/VSO)
Setting up a Linux build server for VSTS is not as straightforward as it first seems. Below are my notes on setting one up...
Pre-requisites
Official docs on pre-reqs: https://github.com/Microsoft/vsts-agent/blob/master/docs/start/envubuntu.md
Install the VSTS agent on Ubuntu
https://www.visualstudio.com/en-gb/docs/build/actions/agents/v2-linux
~/$ wget https://github.com/Microsoft/vsts-agent/releases/download/v2.111.1/vsts-agent-osx.10.11-x64-2.111.1.tar.gz
~/$ mkdir vstsagent && cd vstsagent
~/vstsagent$ tar zxvf ~/vsts-agent-osx.10.11-x64-2.111.1.tar.gz
Service configuration
Running config.sh currently fails with: Failed to initialize CoreCLR, HRESULT: 0x80131500
This is due to compatibility issues with the icu library v55 on 16.04.
To install v52 run the following...
wget http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu52_52.1-8ubuntu0.2_amd64.deb
sudo dpkg -i libicu52_52.1-8ubuntu0.2_amd64.deb
Now you can continue with the documented steps...
run the configuration tool
~/vstsagent$ ./config.sh
You will be asked for the following...
Replace myhost with your VSTS instance...
URL: https://myhost.visualstudio.com
PAT (Personal access token): can be found in your account security section
The agent should be configured to run as a service...
https://github.com/Microsoft/vsts-agent/blob/master/docs/start/svcsystemd.md
Known issues
PATH updates
If you ever update PATH this will not automatically be reflected in VSO agent metadata. The workaround is to run run the following...
# update the vso PATH metadata
~/vstsagent/env.sh
# restart the vso agent service
~/vstsagent/svc.sh stop
~/vstsagent/svc.sh start