DEV Community

Alexey Melezhik
Alexey Melezhik

Posted on

Quick and dirty VSTS builds monitoring using Sparky

Sparky is a powerful pocket size task runner server in crontab style.

It's just a piece of cake how you can monitor VSTS builds using Sparky.

The task is to check that VSTS builds scheduled daily finish successfully.

Monitoring scenario

There are daily builds for production release candidates web application. The application source code is at VSTS git repository $git-repository and the build definition named as Web Build. We want to ensure the next day after a build happens that it succeeds.

Sparrowdo plugin called vsts-schedule-build-check does all the job:

$ nano sparrowfile

#!perl6

my $git-repository = "http/git/repo";

git-scm $git-repository;

task-run "WebApplication Build Check", "vsts-schedule-build-check", %(
  pattern => "Web Build",
);

Enter fullscreen mode Exit fullscreen mode

Monitoring scheduler

As builds get run daily, we run monitor daily as well, right after builds:

$ nano sparky.yaml

crontab: "2 20 * * *"
keep_builds: 10
Enter fullscreen mode Exit fullscreen mode

keep_builds directive means no more 10 sparky reports are kept for this job, as we don't want to keep monitoring reports forever.

Report

2018-10-24 20:02:19 : [task] WebApplication Build Check [plg] vsts-schedule-build-check [path] /
++ grep schedule
++ grep 'Web Build Update'
++ vsts build list
104316  2.0181e+07   completed  succeeded              872  Web Build master     2018-10-24 03:00:00.560775  schedule
102573  2.0181e+07   completed  succeeded              872  Web Build master     2018-10-23 03:00:00.267757  schedule
100867  2.0181e+07   completed  succeeded              872  Web Build master     2018-10-22 03:00:01.772785  schedule
 77631  2.0181e+07   completed  succeeded              872  Web Build master     2018-10-21 03:00:01.573334  schedule
 78325  2.0181e+07   completed  succeeded              872  Web Build master     2018-10-20 03:00:00.225068  schedule
 76774  2.0181e+07   completed  failed                 872  Web Build master     2018-10-17 03:00:00.877437  schedule
 75028  2.0181e+07   completed  failed                 872  Web Build master     2018-10-18 03:00:00.548563  schedule
 73277  2.0181e+07   completed  failed                 872  Web Build master     2018-10-17 03:00:00.477304  schedule
 71571  2.0181e+07   completed  failed                 872  Web Build master     2018-10-16 03:00:02.605516  schedule
 87715  2.0181e+07   completed  failed                 872  Web Build master     2018-10-15 03:00:02.266283  schedule
 88667  2.0181e+07   completed  failed                 872  Web Build master     2018-10-14 03:00:00.535670  schedule
 87423  2.0181e+07   completed  succeeded              872  Web Build master     2018-10-13 03:00:00.537774  schedule
 61408  2.01807e+07  completed  succeeded              872  Web Build develop    2018-07-26 03:00:01.518767  schedule
ok  scenario succeeded
ok  text match /completed\s+succeeded.*\s+2018-10-24\s+\S+\s+schedule$/
ok  text match /completed\s+(succeeded|failed).*\s+2018-10-24\s+\S+\s+schedule$/
STATUS  SUCCEED

Enter fullscreen mode Exit fullscreen mode

Last build for yesterday (2018-10-24) is successful and we're happy.

Top comments (0)