travis-lint 1.4.0 → 1.5.0

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.
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # What is travis-lint
2
2
 
3
- `travis-lint` is a tool that checks your `.travis.yml` file for possible issues, deprecations and so on.
3
+ `travis-lint` is a tool that checks your `.travis.yml` file for possible issues, deprecations and so on.
4
+ Supporting the gem, there's also an online version of this tool at [lint.travis-ci.org](http://lint.travis-ci.org).
4
5
 
5
6
  [![Continuous Integration status](https://secure.travis-ci.org/travis-ci/travis-lint.png)](http://travis-ci.org/travis-ci/travis-lint)
6
7
 
@@ -30,16 +30,6 @@ module Travis
30
30
  validate(hsh).empty?
31
31
  end
32
32
 
33
-
34
- #
35
- # General
36
- #
37
-
38
- validator_for :all, :language, "The \"language\" key is mandatory" do |hsh|
39
- blank? hsh[:language]
40
- end
41
-
42
-
43
33
  #
44
34
  # Erlang
45
35
  #
@@ -93,11 +83,11 @@ module Travis
93
83
 
94
84
 
95
85
  KNOWN_RUBY_VERSIONS = %w(1.8.7 ruby-1.8.7 1.9.2 ruby-1.9.2 1.9.3 ruby-1.9.3 ruby-head jruby jruby-18mode jruby-19mode rbx rbx-18mode rbx-19mode jruby-head ree ree-1.8.7)
96
- KNOWN_NODE_VERSIONS = %w(0.4 0.6 0.7)
86
+ KNOWN_NODE_VERSIONS = %w(0.6 0.8 0.9)
97
87
  KNOWN_PHP_VERSIONS = %w(5.2 5.3 5.3.2 5.3.8 5.4)
98
88
 
99
- KNOWN_PYTHON_VERSIONS = %w(2.5 2.6 2.7 3.1 3.2)
100
- KNOWN_PERL_VERSIONS = %w(5.10 5.12 5.14)
89
+ KNOWN_PYTHON_VERSIONS = %w(2.5 2.6 2.7 3.2)
90
+ KNOWN_PERL_VERSIONS = %w(5.10 5.12 5.14 5.16)
101
91
 
102
92
 
103
93
  #
@@ -133,7 +123,11 @@ module Travis
133
123
  ("node_js" == hsh[:language].to_s.downcase) && hsh[:node_js].is_a?(Array) && !known_node_js_versions?(hsh[:node_js])
134
124
  end
135
125
 
136
-
126
+ validator_for :all, :matrix, "Allowed matrix failures must contain a list of hashes." do |hash|
127
+ if hash[:matrix] and hash[:matrix][:allow_failures]
128
+ !hash[:matrix][:allow_failures].any?{|failure| failure.is_a?(Hash)}
129
+ end
130
+ end
137
131
 
138
132
  protected
139
133
 
@@ -1,6 +1,6 @@
1
1
  module Travis
2
2
  module Lint
3
- VERSION = "1.4.0"
3
+ VERSION = "1.5.0"
4
4
  Version = VERSION
5
5
  end
6
6
  end
@@ -15,7 +15,7 @@ describe "A .travis.yml" do
15
15
 
16
16
  begin
17
17
  capture_stdout do
18
- Travis::Lint::Runner.new(["spec/files/no_language_key.yml"]).run()
18
+ Travis::Lint::Runner.new(["spec/files/uses_unsupported_perl.yml"]).run()
19
19
  end
20
20
  rescue SystemExit => e
21
21
  status = e.status
@@ -31,8 +31,6 @@ describe "A .travis.yml" do
31
31
 
32
32
  let(:docs) { "Travis CI documentation at http://bit.ly/travis-ci-environment" }
33
33
 
34
-
35
-
36
34
  def content_of_sample_file(name)
37
35
  path = Pathname.new(File.join("spec", "files", name)).expand_path
38
36
 
@@ -40,10 +38,10 @@ describe "A .travis.yml" do
40
38
  end
41
39
 
42
40
  context "that is blank" do
43
- it "is invalid" do
44
- Travis::Lint::Linter.validate({}).should include(language_key_is_mandatory)
41
+ it "is valid" do
42
+ Travis::Lint::Linter.validate({}).should_not include(language_key_is_mandatory)
45
43
 
46
- Travis::Lint::Linter.valid?(content_of_sample_file("no_language_key.yml")).should be_false
44
+ Travis::Lint::Linter.valid?(content_of_sample_file("no_language_key.yml")).should be_true
47
45
  end
48
46
  end
49
47
 
@@ -61,7 +59,6 @@ describe "A .travis.yml" do
61
59
  end
62
60
  end
63
61
 
64
-
65
62
  context "and uses jruby instead of jruby-18mode" do
66
63
  let(:travis_yml) do
67
64
  { :language => "ruby", :rvm => ["jruby"] }
@@ -73,7 +70,6 @@ describe "A .travis.yml" do
73
70
  end
74
71
  end
75
72
 
76
-
77
73
  context "and uses rbx instead of rbx-18mode" do
78
74
  let(:travis_yml) do
79
75
  { :language => "ruby", :rvm => ["rbx", "1.9.3"] }
@@ -84,7 +80,6 @@ describe "A .travis.yml" do
84
80
  end
85
81
  end
86
82
 
87
-
88
83
  context "and uses rbx-2.0 instead of rbx-18mode" do
89
84
  let(:travis_yml) do
90
85
  { :language => "ruby", :rvm => ["rbx-2.0", "1.9.3"] }
@@ -96,7 +91,6 @@ describe "A .travis.yml" do
96
91
  end
97
92
  end
98
93
 
99
-
100
94
  context "and uses rbx-2.0.0pre instead of rbx-18mode" do
101
95
  let(:travis_yml) do
102
96
  { :language => "ruby", :rvm => ["rbx-2.0.0pre", "1.9.3"] }
@@ -107,8 +101,6 @@ describe "A .travis.yml" do
107
101
  end
108
102
  end
109
103
 
110
-
111
-
112
104
  context "and uses an unsupported Ruby version" do
113
105
  let(:unsupported_rubies) do
114
106
  { :key => :rvm, :issue => "Detected unsupported Ruby versions. For an up-to-date list of supported Rubies, see #{docs}" }
@@ -124,7 +116,6 @@ describe "A .travis.yml" do
124
116
  end
125
117
  end
126
118
 
127
-
128
119
  context "that specifies Ruby as the language but tries to set node_js version" do
129
120
  let(:travis_yml) do
130
121
  { :language => "ruby", :rvm => ["1.9.3"], :node_js => ["0.6"] }
@@ -136,8 +127,6 @@ describe "A .travis.yml" do
136
127
  end
137
128
  end
138
129
 
139
-
140
-
141
130
  context "that has language set to node_js" do
142
131
  context "and uses an unsupported Node.js version" do
143
132
  let(:unsupported_nodejs) do
@@ -155,7 +144,6 @@ describe "A .travis.yml" do
155
144
  end
156
145
  end
157
146
 
158
-
159
147
  context "that has language set to PHP" do
160
148
  context "and uses an unsupported PHP version" do
161
149
  let(:unsupported_php) do
@@ -173,8 +161,6 @@ describe "A .travis.yml" do
173
161
  end
174
162
  end
175
163
 
176
-
177
-
178
164
  context "that has language set to Python" do
179
165
  context "and uses an unsupported Python version" do
180
166
  let(:unsupported_python) do
@@ -192,8 +178,6 @@ describe "A .travis.yml" do
192
178
  end
193
179
  end
194
180
 
195
-
196
-
197
181
  context "that has language set to Perl" do
198
182
  context "and uses an unsupported Perl version" do
199
183
  let(:unsupported_perl) do
@@ -211,10 +195,6 @@ describe "A .travis.yml" do
211
195
  end
212
196
  end
213
197
 
214
-
215
-
216
-
217
-
218
198
  context "that has language set to erlang" do
219
199
  context "but has no \"otp_release\" key" do
220
200
  it "is invalid" do
@@ -223,4 +203,28 @@ describe "A .travis.yml" do
223
203
  end
224
204
  end
225
205
  end
206
+
207
+ context "with a build matrix" do
208
+ let(:build_matrix_is_not_list_of_hashes) {
209
+ {:key => :matrix, :issue => "Allowed matrix failures must contain a list of hashes."}
210
+ }
211
+ context "with allow_failures" do
212
+ let(:invalid_matrix) {
213
+ {:matrix => {:allow_failures => ["ruby-head"]}}
214
+ }
215
+
216
+ let(:valid_matrix) {
217
+ {:matrix => {:allow_failures => [{"rvm" => "ruby-head"}]}}
218
+ }
219
+
220
+ it "is invalid when the allowed failures are not a list of hashes" do
221
+ Travis::Lint::Linter.validate(invalid_matrix).should include(build_matrix_is_not_list_of_hashes)
222
+ Travis::Lint::Linter.valid?(invalid_matrix).should == false
223
+ end
224
+
225
+ it "is valid when allowed failures are a list of hashes" do
226
+ Travis::Lint::Linter.valid?(valid_matrix).should == true
227
+ end
228
+ end
229
+ end
226
230
  end
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
16
16
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
17
  s.require_paths = ["lib"]
18
18
 
19
- s.add_runtime_dependency("hashr", [">= 0.0.19"])
19
+ s.add_dependency("hashr", "~> 0.0.22")
20
20
 
21
- s.add_development_dependency("rspec", ["~> 2.8.0"])
21
+ s.add_development_dependency("rspec", "~> 2.8")
22
22
  end
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: travis-lint
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
5
4
  prerelease:
5
+ version: 1.5.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Michael S. Klishin
@@ -10,40 +10,40 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-03-12 00:00:00.000000000 Z
13
+ date: 2012-12-04 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: hashr
17
- requirement: !ruby/object:Gem::Requirement
18
- none: false
16
+ version_requirements: !ruby/object:Gem::Requirement
19
17
  requirements:
20
- - - ! '>='
18
+ - - ~>
21
19
  - !ruby/object:Gem::Version
22
- version: 0.0.19
20
+ version: 0.0.22
21
+ none: false
22
+ name: hashr
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- none: false
25
+ requirement: !ruby/object:Gem::Requirement
27
26
  requirements:
28
- - - ! '>='
27
+ - - ~>
29
28
  - !ruby/object:Gem::Version
30
- version: 0.0.19
31
- - !ruby/object:Gem::Dependency
32
- name: rspec
33
- requirement: !ruby/object:Gem::Requirement
29
+ version: 0.0.22
34
30
  none: false
31
+ - !ruby/object:Gem::Dependency
32
+ version_requirements: !ruby/object:Gem::Requirement
35
33
  requirements:
36
34
  - - ~>
37
35
  - !ruby/object:Gem::Version
38
- version: 2.8.0
36
+ version: '2.8'
37
+ none: false
38
+ name: rspec
39
39
  type: :development
40
40
  prerelease: false
41
- version_requirements: !ruby/object:Gem::Requirement
42
- none: false
41
+ requirement: !ruby/object:Gem::Requirement
43
42
  requirements:
44
43
  - - ~>
45
44
  - !ruby/object:Gem::Version
46
- version: 2.8.0
45
+ version: '2.8'
46
+ none: false
47
47
  description: travis-lint is a tool that check your .travis.yml for possible issues,
48
48
  deprecations and so on. Recommended for all travis-ci.org users.
49
49
  email:
@@ -88,20 +88,20 @@ rdoc_options: []
88
88
  require_paths:
89
89
  - lib
90
90
  required_ruby_version: !ruby/object:Gem::Requirement
91
- none: false
92
91
  requirements:
93
92
  - - ! '>='
94
93
  - !ruby/object:Gem::Version
95
94
  version: '0'
96
- required_rubygems_version: !ruby/object:Gem::Requirement
97
95
  none: false
96
+ required_rubygems_version: !ruby/object:Gem::Requirement
98
97
  requirements:
99
98
  - - ! '>='
100
99
  - !ruby/object:Gem::Version
101
100
  version: '0'
101
+ none: false
102
102
  requirements: []
103
103
  rubyforge_project:
104
- rubygems_version: 1.8.18
104
+ rubygems_version: 1.8.23
105
105
  signing_key:
106
106
  specification_version: 3
107
107
  summary: Checks your .travis.yml for possible issues, deprecations and so on