concourse 0.6.1 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 56d17b4df4ab3d532ff68313081b5a3aa8b4a2f5
4
- data.tar.gz: fb2747f94107203c2eeaa486f61165a1e38f70be
3
+ metadata.gz: 183cf7dea38c0266acb101bbe751dda1e609ff02
4
+ data.tar.gz: 7f6182af5ad5df4ec9ff3f9c567bd8cc869f2e9d
5
5
  SHA512:
6
- metadata.gz: e226bca7a495534e778be04684da51baca5636e6203739162e28a42244b692f6467d5d29d648345a49eb608b68903823132b52434e4afffc944ae0e7d256ae95
7
- data.tar.gz: 86216b2326633817b0438953d6e24f51229a3a0b62fefd46e3c4f836e795e6a078592d31c267e90294912371934b93f727e794815ed18111cbdbbeb731410297
6
+ metadata.gz: 6925806fe57340e0356ea9127de345dcf26e148c561d682d9765c0a94b761058950d46b5560e03080a2b02cafe9fd5bdc4f15e71b6477944aee404cac8d5267a
7
+ data.tar.gz: 5cbf130ceb6e87211c576859d452226f99f690988692adaaded842b93e3e599d35dac8380791fe0a6ba528b77ef5c09a12abb65871d70081f5af4b9f58817c3b
@@ -1,5 +1,10 @@
1
1
  # concourse-gem changelog
2
2
 
3
+ ## 0.7.0 / 2017-02-08
4
+
5
+ Added a rake task to generate badges markdown.
6
+
7
+
3
8
  ## 0.6.{0,1} / 2017-01-26
4
9
 
5
10
  If it exists, use `concourse/private.yml` to fill in template values.
data/README.md CHANGED
@@ -97,6 +97,19 @@ where:
97
97
  * _optional_: `fly_execute_args` will default to map the project directory to a resource with the project name, e.g. `--input=myproject=.`, so your pipeline must name the input resource appropriately in order to use the default.
98
98
 
99
99
 
100
+ ### Generating a sweet set of markdown badges
101
+
102
+ Would you like a markdown table of your jobs' passing/failing badges? Of course you would.
103
+
104
+ ```
105
+ rake concourse:badges[fly_target,team_name] # display a list of jobs and badge urls
106
+ ```
107
+
108
+ where:
109
+
110
+ * _optional_: `team_name` is the name of the pipeline's Concourse Team. Defaults to `main`.
111
+
112
+
100
113
  ## Installation
101
114
 
102
115
  Add this line to your application's Gemfile:
@@ -22,6 +22,10 @@ class Concourse
22
22
  return task_args[:fly_target]
23
23
  end
24
24
 
25
+ def self.url_for fly_target
26
+ `fly targets`.split("\n").grep(/^#{fly_target}/).first.split(/ +/)[1]
27
+ end
28
+
25
29
  def initialize project_name
26
30
  @project_name = project_name
27
31
  @pipeline_filename = File.join(DIRECTORY, "#{project_name}.yml")
@@ -113,13 +117,41 @@ class Concourse
113
117
  sh "fly -t #{fly_target} execute #{fly_execute_args} -c #{f.path} -x"
114
118
  end
115
119
  end
120
+
121
+ #
122
+ # badge commands
123
+ #
124
+ desc "display a list of jobs and badge urls"
125
+ task "badges", [:fly_target, :team_name] => "generate" do |t, args|
126
+ fly_target = Concourse.validate_fly_target t, args
127
+ team_name = args[:team_name] || "main"
128
+ url_prefix = Concourse.url_for fly_target
129
+
130
+ puts ""
131
+ puts "| Build | Status |"
132
+ puts "|--|--|"
133
+
134
+ each_job do |job|
135
+ job_name = job["name"]
136
+ badge_url = badge_url_for url_prefix, team_name, job_name
137
+ job_url = job_url_for url_prefix, team_name, job_name
138
+
139
+ puts %Q'| #{titleize job_name} | [![name](#{badge_url})](#{job_url}) |'
140
+ end
141
+ end
116
142
  end
117
143
  end
118
144
 
119
- def each_task
145
+ def each_job
120
146
  pipeline = YAML.load_file(pipeline_filename)
121
147
 
122
148
  pipeline["jobs"].each do |job|
149
+ yield job
150
+ end
151
+ end
152
+
153
+ def each_task
154
+ each_job do |job|
123
155
  job["plan"].each do |task|
124
156
  yield job, task if task["task"]
125
157
  end
@@ -133,4 +165,29 @@ class Concourse
133
165
  end
134
166
  nil
135
167
  end
168
+
169
+ def titleize string
170
+ string.gsub(/[^a-zA-Z0-9\.]/, " ")
171
+ end
172
+
173
+ def badge_url_for url_prefix, team_name, job_name
174
+ File.join url_prefix,
175
+ "api/v1/teams",
176
+ team_name,
177
+ "pipelines",
178
+ project_name,
179
+ "jobs",
180
+ job_name,
181
+ "badge"
182
+ end
183
+
184
+ def job_url_for url_prefix, team_name, job_name
185
+ File.join url_prefix,
186
+ "teams",
187
+ team_name,
188
+ "pipelines",
189
+ project_name,
190
+ "jobs",
191
+ job_name
192
+ end
136
193
  end
@@ -2,5 +2,5 @@ require "rake"
2
2
  require "erb"
3
3
 
4
4
  class Concourse
5
- VERSION = "0.6.1"
5
+ VERSION = "0.7.0"
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: concourse
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Dalessio
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-01-26 00:00:00.000000000 Z
11
+ date: 2017-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler