janky 0.12.0 → 0.13.0.pre1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +16 -17
- data/janky.gemspec +12 -7
- data/lib/janky/build_request.rb +1 -1
- data/lib/janky/database/schema.rb +48 -48
- data/lib/janky/hubot.rb +2 -2
- data/lib/janky/repository.rb +2 -2
- data/lib/janky/version.rb +1 -1
- metadata +46 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae900c42b7672a66ca555375abf8e8b20c59ac55
|
4
|
+
data.tar.gz: 8db3f22f4255fa94e8cf73859db9a28ddae14d4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 182d740c5bc5677926fb860a6187407552373ae91943ebfe7d4b5a08d66cbc7552ee9452a33543348bdb70dd752780fd33f612f398c1e3a588cd78338c07af8d
|
7
|
+
data.tar.gz: 46117ffac656995fad07049a4efd8298d144ad50b548ac911f53c56591cae5fc9b565ed7ea047feb8ed151c78fa88bf1a7fa56bcb1998f9ba333beda5e1a4d55
|
data/README.md
CHANGED
@@ -24,29 +24,37 @@ Hubot usage
|
|
24
24
|
-----------
|
25
25
|
|
26
26
|
Start by setting up a new Jenkins job and GitHub web hook for a
|
27
|
-
repository:
|
27
|
+
repository: `[ORG]/[REPO]`
|
28
28
|
|
29
29
|
hubot ci setup github/janky
|
30
30
|
|
31
31
|
The `setup` command can safely be run over and over again. It won't do
|
32
|
-
anything unless it needs to. It takes an optional name argument:
|
32
|
+
anything unless it needs to. It takes an optional `name` argument: `[ORG]/[REPO] [NAME]`
|
33
33
|
|
34
34
|
hubot ci setup github/janky janky-ruby1.9.2
|
35
35
|
|
36
|
-
It also takes an optional template
|
36
|
+
It also takes an optional `template` argument: `[ORG]/[REPO] [NAME] [TEMPLATE]`
|
37
37
|
|
38
38
|
hubot ci setup github/janky janky-ruby1.9.2 ruby-build
|
39
39
|
|
40
40
|
All branches are built automatically on push. Disable auto build with:
|
41
41
|
|
42
|
-
hubot ci toggle
|
42
|
+
hubot ci toggle [REPO]
|
43
|
+
|
44
|
+
**NOTE**: If `name` was set you'll need to use it intested.
|
45
|
+
|
46
|
+
hubot ci toggle [NAME]
|
43
47
|
|
44
48
|
Run the command again to re-enable it. Force a build of the master
|
45
49
|
branch:
|
46
50
|
|
47
|
-
hubot ci build
|
51
|
+
hubot ci build [REPO]
|
52
|
+
|
53
|
+
**NOTE**: If `name` was set you'll need to use it intested.
|
54
|
+
|
55
|
+
hubot ci build [NAME]
|
48
56
|
|
49
|
-
Of a specific branch:
|
57
|
+
Of a specific branch: `[REPO]/[BRANCH]`
|
50
58
|
|
51
59
|
hubot ci build janky/libgit2
|
52
60
|
|
@@ -55,7 +63,7 @@ lets you choose where notifications are sent to. First get a list of
|
|
55
63
|
available rooms:
|
56
64
|
|
57
65
|
hubot ci rooms
|
58
|
-
|
66
|
+
|
59
67
|
Then pick one:
|
60
68
|
|
61
69
|
hubot ci set room janky The Serious Room
|
@@ -64,7 +72,7 @@ Get the status of a build:
|
|
64
72
|
|
65
73
|
hubot ci status janky
|
66
74
|
|
67
|
-
Specific branch:
|
75
|
+
Specific branch: `[REPO]/[BRANCH]`
|
68
76
|
|
69
77
|
hubot ci status janky/libgit2
|
70
78
|
|
@@ -192,15 +200,6 @@ respectively.
|
|
192
200
|
|
193
201
|
### Chat notifications
|
194
202
|
|
195
|
-
#### Campfire
|
196
|
-
Janky notifies [Campfire][] chat rooms by default. Required settings:
|
197
|
-
|
198
|
-
* `JANKY_CHAT_CAMPFIRE_ACCOUNT`: account name.
|
199
|
-
* `JANKY_CHAT_CAMPFIRE_TOKEN`: authentication token for the user sending
|
200
|
-
build notifications.
|
201
|
-
|
202
|
-
[Campfire]: http://campfirenow.com/
|
203
|
-
|
204
203
|
#### HipChat
|
205
204
|
|
206
205
|
Required settings:
|
data/janky.gemspec
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
require File.expand_path("../lib/janky/version", __FILE__)
|
2
2
|
|
3
|
-
Gem::Specification.new
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = "janky"
|
5
|
+
s.version = Janky::VERSION
|
4
6
|
s.description = "Janky is a Continuous Integration server"
|
5
7
|
s.summary = "Continuous Integration server built on top of Jenkins and " \
|
6
8
|
"designed for GitHub and Hubot"
|
7
|
-
s.authors = ["Simon Rozet"]
|
9
|
+
s.authors = ["Simon Rozet", "Matt Rogers"]
|
10
|
+
s.email = 'codemattr@gmail.com'
|
8
11
|
s.homepage = "https://github.com/github/janky"
|
9
12
|
s.has_rdoc = false
|
10
13
|
s.license = "MIT"
|
@@ -16,12 +19,13 @@ https://github.com/github/janky/commit/0fc6214e3a75cc138aed46a2493980440e848aa3#
|
|
16
19
|
EOL
|
17
20
|
|
18
21
|
# runtime
|
19
|
-
s.add_dependency "rake", "~>
|
22
|
+
s.add_dependency "rake", "~>12.0"
|
20
23
|
s.add_dependency "sinatra", "~>1.3"
|
21
24
|
s.add_dependency "sinatra_auth_github", "~>1.0.0"
|
22
25
|
s.add_dependency "mustache", "~>0.11"
|
23
|
-
s.add_dependency "yajl-ruby", "~>1.3.
|
24
|
-
s.add_dependency "activerecord", "~>
|
26
|
+
s.add_dependency "yajl-ruby", "~>1.3.1"
|
27
|
+
s.add_dependency "activerecord", "~>4.2.0"
|
28
|
+
s.add_dependency "activerecord-deprecated_finders", "~>1.0.4"
|
25
29
|
s.add_dependency "broach", "~>0.2"
|
26
30
|
s.add_dependency "replicate", "~>1.4"
|
27
31
|
|
@@ -29,10 +33,11 @@ EOL
|
|
29
33
|
s.add_development_dependency "shotgun", "~>0.9"
|
30
34
|
s.add_development_dependency "thin", "~>1.2"
|
31
35
|
s.add_development_dependency "mysql2", "~>0.3.0"
|
36
|
+
s.add_development_dependency "test-unit", "~>3.2.0"
|
32
37
|
|
33
38
|
# test
|
34
|
-
s.add_development_dependency "database_cleaner", "
|
35
|
-
s.add_development_dependency "mocha", "~>
|
39
|
+
s.add_development_dependency "database_cleaner", "1.6.2"
|
40
|
+
s.add_development_dependency "mocha", "~>1.5.0"
|
36
41
|
|
37
42
|
s.files = %w[
|
38
43
|
CHANGES
|
data/lib/janky/build_request.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Janky
|
2
2
|
class BuildRequest
|
3
3
|
def self.handle(repo_uri, branch_name, pusher, commit, compare, room_id)
|
4
|
-
repos = Repository.
|
4
|
+
repos = Repository.where(uri: repo_uri)
|
5
5
|
repos.each do |repo|
|
6
6
|
begin
|
7
7
|
new(repo, branch_name, pusher, commit, compare, room_id).handle
|
@@ -9,70 +9,70 @@
|
|
9
9
|
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
|
10
10
|
# you'll amass, the slower it'll run and the greater likelihood for issues).
|
11
11
|
#
|
12
|
-
# It's strongly recommended
|
12
|
+
# It's strongly recommended that you check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(:
|
14
|
+
ActiveRecord::Schema.define(version: 1400144784) do
|
15
15
|
|
16
|
-
create_table "branches", :
|
17
|
-
t.string "name", :null
|
18
|
-
t.integer "repository_id", :null
|
19
|
-
t.datetime "created_at"
|
20
|
-
t.datetime "updated_at"
|
16
|
+
create_table "branches", force: :cascade do |t|
|
17
|
+
t.string "name", limit: 255, null: false
|
18
|
+
t.integer "repository_id", limit: 4, null: false
|
19
|
+
t.datetime "created_at"
|
20
|
+
t.datetime "updated_at"
|
21
21
|
end
|
22
22
|
|
23
|
-
add_index "branches", ["name", "repository_id"], :
|
23
|
+
add_index "branches", ["name", "repository_id"], name: "index_branches_on_name_and_repository_id", unique: true, using: :btree
|
24
24
|
|
25
|
-
create_table "builds", :
|
26
|
-
t.boolean "green",
|
27
|
-
t.string "url"
|
28
|
-
t.string "compare",
|
25
|
+
create_table "builds", force: :cascade do |t|
|
26
|
+
t.boolean "green", default: false
|
27
|
+
t.string "url", limit: 255
|
28
|
+
t.string "compare", limit: 255, null: false
|
29
29
|
t.datetime "started_at"
|
30
30
|
t.datetime "completed_at"
|
31
|
-
t.integer "commit_id",
|
32
|
-
t.integer "branch_id",
|
33
|
-
t.datetime "created_at"
|
34
|
-
t.datetime "updated_at"
|
35
|
-
t.text "output"
|
36
|
-
t.string "room_id"
|
37
|
-
t.string "user"
|
31
|
+
t.integer "commit_id", limit: 4, null: false
|
32
|
+
t.integer "branch_id", limit: 4, null: false
|
33
|
+
t.datetime "created_at"
|
34
|
+
t.datetime "updated_at"
|
35
|
+
t.text "output", limit: 65535
|
36
|
+
t.string "room_id", limit: 255
|
37
|
+
t.string "user", limit: 255
|
38
38
|
t.datetime "queued_at"
|
39
39
|
end
|
40
40
|
|
41
|
-
add_index "builds", ["branch_id"], :
|
42
|
-
add_index "builds", ["commit_id"], :
|
43
|
-
add_index "builds", ["completed_at"], :
|
44
|
-
add_index "builds", ["green"], :
|
45
|
-
add_index "builds", ["started_at"], :
|
46
|
-
add_index "builds", ["url"], :
|
41
|
+
add_index "builds", ["branch_id"], name: "index_builds_on_branch_id", using: :btree
|
42
|
+
add_index "builds", ["commit_id"], name: "index_builds_on_commit_id", using: :btree
|
43
|
+
add_index "builds", ["completed_at"], name: "index_builds_on_completed_at", using: :btree
|
44
|
+
add_index "builds", ["green"], name: "index_builds_on_green", using: :btree
|
45
|
+
add_index "builds", ["started_at"], name: "index_builds_on_started_at", using: :btree
|
46
|
+
add_index "builds", ["url"], name: "index_builds_on_url", unique: true, using: :btree
|
47
47
|
|
48
|
-
create_table "commits", :
|
49
|
-
t.string "sha1", :null
|
50
|
-
t.text "message", :null
|
51
|
-
t.string "author", :null
|
48
|
+
create_table "commits", force: :cascade do |t|
|
49
|
+
t.string "sha1", limit: 255, null: false
|
50
|
+
t.text "message", limit: 65535, null: false
|
51
|
+
t.string "author", limit: 255, null: false
|
52
52
|
t.datetime "committed_at"
|
53
|
-
t.integer "repository_id", :null
|
54
|
-
t.datetime "created_at"
|
55
|
-
t.datetime "updated_at"
|
56
|
-
t.string "url", :null
|
53
|
+
t.integer "repository_id", limit: 4, null: false
|
54
|
+
t.datetime "created_at"
|
55
|
+
t.datetime "updated_at"
|
56
|
+
t.string "url", limit: 255, null: false
|
57
57
|
end
|
58
58
|
|
59
|
-
add_index "commits", ["sha1", "repository_id"], :
|
59
|
+
add_index "commits", ["sha1", "repository_id"], name: "index_commits_on_sha1_and_repository_id", unique: true, using: :btree
|
60
60
|
|
61
|
-
create_table "repositories", :
|
62
|
-
t.string "name",
|
63
|
-
t.string "uri",
|
64
|
-
t.string "room_id"
|
65
|
-
t.datetime "created_at"
|
66
|
-
t.datetime "updated_at"
|
67
|
-
t.boolean "enabled",
|
68
|
-
t.string "hook_url"
|
69
|
-
t.integer "github_team_id"
|
70
|
-
t.string "job_template"
|
71
|
-
t.string "context"
|
61
|
+
create_table "repositories", force: :cascade do |t|
|
62
|
+
t.string "name", limit: 255, null: false
|
63
|
+
t.string "uri", limit: 255, null: false
|
64
|
+
t.string "room_id", limit: 255
|
65
|
+
t.datetime "created_at"
|
66
|
+
t.datetime "updated_at"
|
67
|
+
t.boolean "enabled", default: true, null: false
|
68
|
+
t.string "hook_url", limit: 255
|
69
|
+
t.integer "github_team_id", limit: 4
|
70
|
+
t.string "job_template", limit: 255
|
71
|
+
t.string "context", limit: 255
|
72
72
|
end
|
73
73
|
|
74
|
-
add_index "repositories", ["enabled"], :
|
75
|
-
add_index "repositories", ["name"], :
|
76
|
-
add_index "repositories", ["uri"], :
|
74
|
+
add_index "repositories", ["enabled"], name: "index_repositories_on_enabled", using: :btree
|
75
|
+
add_index "repositories", ["name"], name: "index_repositories_on_name", unique: true, using: :btree
|
76
|
+
add_index "repositories", ["uri"], name: "index_repositories_on_uri", using: :btree
|
77
77
|
|
78
78
|
end
|
data/lib/janky/hubot.rb
CHANGED
@@ -83,7 +83,7 @@ module Janky
|
|
83
83
|
# Get the status of all projects.
|
84
84
|
get "/" do
|
85
85
|
content_type "text/plain"
|
86
|
-
repos = Repository.
|
86
|
+
repos = Repository.includes(:branches, :commits, :builds).all.map do |repo|
|
87
87
|
master = repo.branch_for("master")
|
88
88
|
|
89
89
|
"%-17s %-13s %-10s %40s" % [
|
@@ -109,7 +109,7 @@ module Janky
|
|
109
109
|
end
|
110
110
|
builds = builds.limit(limit) unless limit.blank?
|
111
111
|
|
112
|
-
builds.map
|
112
|
+
builds.map do |build|
|
113
113
|
build_to_hash(build)
|
114
114
|
end
|
115
115
|
|
data/lib/janky/repository.rb
CHANGED
@@ -8,7 +8,7 @@ module Janky
|
|
8
8
|
|
9
9
|
replicate_associations :builds, :commits, :branches
|
10
10
|
|
11
|
-
default_scope
|
11
|
+
default_scope { order("name") }
|
12
12
|
|
13
13
|
def self.setup(nwo, name = nil, template = nil)
|
14
14
|
if nwo.nil?
|
@@ -65,7 +65,7 @@ module Janky
|
|
65
65
|
#
|
66
66
|
# Returns a Branch record.
|
67
67
|
def branch_for(name)
|
68
|
-
branches.
|
68
|
+
branches.find_or_create_by(name: name)
|
69
69
|
end
|
70
70
|
|
71
71
|
# Create or retrieve the given commit.
|
data/lib/janky/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: janky
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.0.pre1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Simon Rozet
|
8
|
+
- Matt Rogers
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2018-10-08 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: rake
|
@@ -16,14 +17,14 @@ dependencies:
|
|
16
17
|
requirements:
|
17
18
|
- - "~>"
|
18
19
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
20
|
+
version: '12.0'
|
20
21
|
type: :runtime
|
21
22
|
prerelease: false
|
22
23
|
version_requirements: !ruby/object:Gem::Requirement
|
23
24
|
requirements:
|
24
25
|
- - "~>"
|
25
26
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
27
|
+
version: '12.0'
|
27
28
|
- !ruby/object:Gem::Dependency
|
28
29
|
name: sinatra
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,28 +73,42 @@ dependencies:
|
|
72
73
|
requirements:
|
73
74
|
- - "~>"
|
74
75
|
- !ruby/object:Gem::Version
|
75
|
-
version: 1.3.
|
76
|
+
version: 1.3.1
|
76
77
|
type: :runtime
|
77
78
|
prerelease: false
|
78
79
|
version_requirements: !ruby/object:Gem::Requirement
|
79
80
|
requirements:
|
80
81
|
- - "~>"
|
81
82
|
- !ruby/object:Gem::Version
|
82
|
-
version: 1.3.
|
83
|
+
version: 1.3.1
|
83
84
|
- !ruby/object:Gem::Dependency
|
84
85
|
name: activerecord
|
85
86
|
requirement: !ruby/object:Gem::Requirement
|
86
87
|
requirements:
|
87
88
|
- - "~>"
|
88
89
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
90
|
+
version: 4.2.0
|
90
91
|
type: :runtime
|
91
92
|
prerelease: false
|
92
93
|
version_requirements: !ruby/object:Gem::Requirement
|
93
94
|
requirements:
|
94
95
|
- - "~>"
|
95
96
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
97
|
+
version: 4.2.0
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: activerecord-deprecated_finders
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - "~>"
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 1.0.4
|
105
|
+
type: :runtime
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - "~>"
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: 1.0.4
|
97
112
|
- !ruby/object:Gem::Dependency
|
98
113
|
name: broach
|
99
114
|
requirement: !ruby/object:Gem::Requirement
|
@@ -165,35 +180,49 @@ dependencies:
|
|
165
180
|
- !ruby/object:Gem::Version
|
166
181
|
version: 0.3.0
|
167
182
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
183
|
+
name: test-unit
|
169
184
|
requirement: !ruby/object:Gem::Requirement
|
170
185
|
requirements:
|
171
186
|
- - "~>"
|
172
187
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
188
|
+
version: 3.2.0
|
174
189
|
type: :development
|
175
190
|
prerelease: false
|
176
191
|
version_requirements: !ruby/object:Gem::Requirement
|
177
192
|
requirements:
|
178
193
|
- - "~>"
|
179
194
|
- !ruby/object:Gem::Version
|
180
|
-
version:
|
195
|
+
version: 3.2.0
|
196
|
+
- !ruby/object:Gem::Dependency
|
197
|
+
name: database_cleaner
|
198
|
+
requirement: !ruby/object:Gem::Requirement
|
199
|
+
requirements:
|
200
|
+
- - '='
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: 1.6.2
|
203
|
+
type: :development
|
204
|
+
prerelease: false
|
205
|
+
version_requirements: !ruby/object:Gem::Requirement
|
206
|
+
requirements:
|
207
|
+
- - '='
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: 1.6.2
|
181
210
|
- !ruby/object:Gem::Dependency
|
182
211
|
name: mocha
|
183
212
|
requirement: !ruby/object:Gem::Requirement
|
184
213
|
requirements:
|
185
214
|
- - "~>"
|
186
215
|
- !ruby/object:Gem::Version
|
187
|
-
version:
|
216
|
+
version: 1.5.0
|
188
217
|
type: :development
|
189
218
|
prerelease: false
|
190
219
|
version_requirements: !ruby/object:Gem::Requirement
|
191
220
|
requirements:
|
192
221
|
- - "~>"
|
193
222
|
- !ruby/object:Gem::Version
|
194
|
-
version:
|
223
|
+
version: 1.5.0
|
195
224
|
description: Janky is a Continuous Integration server
|
196
|
-
email:
|
225
|
+
email: codemattr@gmail.com
|
197
226
|
executables: []
|
198
227
|
extensions: []
|
199
228
|
extra_rdoc_files: []
|
@@ -298,12 +327,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
298
327
|
version: '0'
|
299
328
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
300
329
|
requirements:
|
301
|
-
- - "
|
330
|
+
- - ">"
|
302
331
|
- !ruby/object:Gem::Version
|
303
|
-
version:
|
332
|
+
version: 1.3.1
|
304
333
|
requirements: []
|
305
334
|
rubyforge_project:
|
306
|
-
rubygems_version: 2.
|
335
|
+
rubygems_version: 2.6.13
|
307
336
|
signing_key:
|
308
337
|
specification_version: 4
|
309
338
|
summary: Continuous Integration server built on top of Jenkins and designed for GitHub
|