summaryrefslogtreecommitdiff
path: root/jobs
diff options
context:
space:
mode:
authorvarac <varacanero@zeromail.org>2016-09-29 10:03:58 +0200
committervarac <varacanero@zeromail.org>2016-09-30 22:00:34 +0200
commitbc95708fe005cd36a49946db22e35ae82da4584b (patch)
treee4dc5ddeb718d1a8911da0dcc0664a2d73bffe7f /jobs
parentad19d7f11b10092cdcb1f6be638072ef8d8b9867 (diff)
[wip] gitlab-builds
Diffstat (limited to 'jobs')
-rw-r--r--jobs/gitlab_builds.rb66
-rw-r--r--jobs/gitlab_merge_requests.rb36
-rw-r--r--jobs/nagios.rb7
3 files changed, 69 insertions, 40 deletions
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,