Last Updated: 5 February 2020
View the latest builds from your Azure DevOps and on-premise Team Foundation Server projects.
This project is a modernized resurrection of the original open source project by Orbit One. We've rewritten the service layer from scratch to use the latest Azure DevOps REST APIs for best performance, improved the styling, fixed some bugs, and migrated the whole thing to .Net Core. It can run as a Linux Docker container, including an ARM version that can be run on a Raspberry Pi in a matter of minutes.
Avatars for each build tile are retrived from Gravatar, falling back to the Azure DevOps profile if no Gravatar is available.
Build tiles have links to additional information within Azure Dev Ops for swift assessment of the problem without losing valuable time. The ribbon over the top right hand corner shows the number of tests, and how many passed.
You can clone the source code from Github and build the app and run it locally, or deploy the binaries in your favourite manner (Kestrel, IIS, etc.). Easier still, you can use the latest pre-built Docker image available on DockerHub which supports Linux x64 and ARM.
Use this command to run the app as a container. Note that there are two different URL variations for cloud Azure DevOps: 'yourazdo.visualstudio.com' or 'dev.azure.com/yourazdo'. Either of these are valid in the 'ServerUrl' parameter.
docker run --name buildscreen -p 80:80 -e AzureDevOpsProvider:ServerUrl="https://yourazdo.visualstudio.com" -e AzureDevOpsProvider:AuthToken="yourauthtoken" -e AzureDevOpsProvider:ProjectCollection="projectcolletion" -e AzureDevOpsProvider:Projects="comma,delimited,list" -e AzureDevOpsProvider:Organization="your-organization" parksq/buildscreen
Replace the ServerUrl, AuthToken, ProjectCollection and Projects (comma delimited list if more than one) values with those appropriate for your setup.
The Docker image is compatible with ARM so can easily be run on any Raspberry Pi. Raspbian with Desktop is recommended. Once installed, you can make the device automatically update the Build Screen app to the latest version and launch it in a web browser. To do this, run the following commands:
mkdir /home/pi/.config/autostart nano /home/pi/.config/autostart/buildscreen.desktop
Now paste the following contents into the new buildscreen.desktop file:
[Desktop Entry] Type=Application Name=Buildscreen Exec=/home/pi/start.sh
Exit Nano by pressing CTRL + X and then Y to save the file. Enter the following command to create the script that will update and launch the app:
touch /home/pi/start.sh sudo chmod +x /home/pi/start.sh nano /home/pi/start.sh
Paste the following into the new file, save again using CTRL + X then Y, and reboot the device. The Build Screen app should automatically download the latest container image and launch it in Chromium.
#!/bin/bash sudo docker pull parksq/buildscreen sudo docker rm buildscreen sudo docker run -d --name buildscreen -p 80:80 -e AzureDevOpsProvider:ServerUrl="https://yourazdo.visualstudio.com" -e AzureDevOpsProvider:AuthToken="yourauthtoken" -e AzureDevOpsProvider:ProjectCollection="projectcolletion" -e AzureDevOpsProvider:Projects="comma,delimited,list" -e AzureDevOpsProvider:Organization="your-organization" parksq/buildscreen /usr/bin/chromium-browser --no-sandbox --noerrdialogs --disable-infobars --start-fullscreen --disable-restore-session-state http://localhost &
If you want to automatically clean up any images before downloading the latest, add these lines before the 'docker pull' command.
sudo docker stop $(sudo docker ps -a -q) sudo docker rm $(sudo docker ps -a -q) sudo docker system prune -a -f
If you or your organization requires assistance with your devops function, including build and deploy with on-premise TFS or Azure DevOps, don't hesitate to contact us.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.