From bc95708fe005cd36a49946db22e35ae82da4584b Mon Sep 17 00:00:00 2001 From: varac Date: Thu, 29 Sep 2016 10:03:58 +0200 Subject: [wip] gitlab-builds --- jobs/gitlab_builds.rb | 66 +++++++++++++++++++++++++++++++++++++++++++ jobs/gitlab_merge_requests.rb | 36 ----------------------- jobs/nagios.rb | 7 ++--- 3 files changed, 69 insertions(+), 40 deletions(-) create mode 100644 jobs/gitlab_builds.rb delete mode 100644 jobs/gitlab_merge_requests.rb (limited to 'jobs') diff --git a/jobs/gitlab_builds.rb b/jobs/gitlab_builds.rb new file mode 100644 index 0000000..0071835 --- /dev/null +++ b/jobs/gitlab_builds.rb @@ -0,0 +1,66 @@ +require 'gitlab' +require 'date' +require 'pp' + +endpoint = 'https://0xacab.org/api/v3' +#group_path = 'leap' +#group_id = 52 +token = '8vw3vWRrzFw8B6XH9e6d' +broken_builds = [] + +Gitlab.configure do |config| + # API endpoint URL, default + config.endpoint = endpoint + + # User's private token or OAuth2 access token + config.private_token = token +end + +# find group id by name +#my_group = Gitlab.groups(:search => group_path).find do |group| + #group.path == group_path +#end +#my_group_id = my_group.id + + +SCHEDULER.every '60s', :first_in => 0 do + + projects = [ + # {:id=>327, :name=>"zeromq3", :path=>"leap/zeromq3"}, + # {:id=>97, :name=>"soledad", :path=>"leap/soledad"}, + # {:id=>129, :name=>"platform", :path=>"leap/platfrom"}, + {:id=>241, :name=>"leap_cli", :path=>"leap/leap_cli"} + ] + + # get a list of all projects + #projects = Gitlab.group(group_id).projects.map do |proj| + #pp proj + #{ :id => proj['id'], :name => proj['name'], :path => proj['path_with_namespace'] } + #end + + + projects.each do |proj| + + begin + pipeline = Gitlab.pipelines(proj[:id], { per_page: 1 }) + #pp pipeline[0] + proj[:status] = pipeline[0].status + proj[:pipeline_id] = pipeline[0].id + proj[:ref] = pipeline[0].ref + proj[:date] = pipeline[0].finished_at + rescue + proj[:status] = 'No builds configured' + end + + unless proj[:status] =~ /^success|running|No builds configured$/ + broken_builds << proj + end + puts proj + end + + failed = broken_builds.size > 0 + #puts failed + + send_event('gitlab-builds', { failed: failed, header: "Gitlab builds", broken_builds: broken_builds }) +end + diff --git a/jobs/gitlab_merge_requests.rb b/jobs/gitlab_merge_requests.rb deleted file mode 100644 index f39caf9..0000000 --- a/jobs/gitlab_merge_requests.rb +++ /dev/null @@ -1,36 +0,0 @@ -require 'gitlab' -require 'date' - -# TODO: Move config to yaml -my_group_path = 'leap' -Gitlab.configure do |config| - # API endpoint URL, default - config.endpoint = ENV['GITLAB_ENDPOINT'] - - # User's private token or OAuth2 access token - config.private_token = ENV['GITLAB_TOKEN'] -end - -pr_widget_data_id = 'gitlab-merge-requests' -SCHEDULER.every '10m', :first_in => 0 do |job| - my_group = Gitlab.groups(:search => my_group_path).find do |group| - group.path == my_group_path - end - projects = Gitlab.group(my_group.id).projects.map do |proj| - { :id => proj['id'], :name => proj['name'] } - end - - open_merge_requests = projects.inject([]) { |merges, proj| - Gitlab.merge_requests(proj[:id], :state => 'opened').each do |request| - puts proj[:name] + ': ' + request.title - merges.push({ - title: request.title, - repo: proj[:name], - updated_at: DateTime.parse(request.updated_at).strftime("%b %-d %Y, %l:%m %p"), - creator: "@" + request.author.username - }) - end - merges - } - send_event(pr_widget_data_id, { header: "Open Merge Requests", merges: open_merge_requests }) -end diff --git a/jobs/nagios.rb b/jobs/nagios.rb index 1f76237..bda1b59 100644 --- a/jobs/nagios.rb +++ b/jobs/nagios.rb @@ -1,7 +1,6 @@ SCHEDULER.every '10s' do require 'bundler/setup' require 'nagiosharder' - require 'pp' environments = { cdev: { @@ -87,9 +86,9 @@ SCHEDULER.every '10s' do end end - puts key.to_s + ": " + critical_count.to_s - puts critical_services.join(", ") - puts + #puts key.to_s + ": " + critical_count.to_s + #puts critical_services.join(", ") + #puts send_event('nagios-' + key.to_s, { criticals: critical_count, critical_services: critical_services, -- cgit v1.2.3