travis-lint 1.1.0 → 1.2.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.
@@ -81,11 +81,54 @@ module Travis
81
81
  hsh[:rvm].is_a?(Array) && hsh[:rvm].include?("1.8.6")
82
82
  end
83
83
 
84
+ DOCS_URL = "Travis CI documentation at http://bit.ly/travis-ci-environment"
85
+
86
+ validator_for :ruby, :rvm, "Detected unsupported Ruby versions. For an up-to-date list of supported Rubies, see #{DOCS_URL}" do |hsh|
87
+ ("ruby" == hsh[:language].to_s.downcase) && hsh[:rvm].is_a?(Array) && !known_ruby_versions?(hsh[:rvm])
88
+ end
89
+
90
+ validator_for :node_js, :node_js, "Detected unsupported Node.js versions. For an up-to-date list of supported Node.js versions, see #{DOCS_URL}" do |hsh|
91
+ ("node_js" == hsh[:language].to_s.downcase) && hsh[:node_js].is_a?(Array) && !known_node_js_versions?(hsh[:node_js])
92
+ end
93
+
94
+ validator_for :php, :php, "Detected unsupported PHP versions. For an up-to-date list of supported PHP versions, see #{DOCS_URL}" do |hsh|
95
+ ("php" == hsh[:language].to_s.downcase) && hsh[:php].is_a?(Array) && !known_php_versions?(hsh[:php])
96
+ end
97
+
84
98
 
85
99
 
86
100
  validator_for :ruby, :language, "Language is set to Ruby but node_js key is present. Ruby builder will ignore node_js key." do |hsh|
87
101
  hsh[:language].to_s.downcase == "ruby" && ! blank?(hsh[:node_js])
88
102
  end
103
+
104
+
105
+ 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)
106
+ KNOWN_NODE_VERSIONS = %w(0.4 0.6 0.7)
107
+ KNOWN_PHP_VERSIONS = %w(5.2 5.3 5.3.2 5.3.8 5.4)
108
+
109
+ protected
110
+
111
+ def self.known_ruby_versions?(ary)
112
+ ary = ary.map(&:to_s)
113
+
114
+ unknown = ary - KNOWN_RUBY_VERSIONS
115
+ unknown.empty?
116
+ end
117
+
118
+ def self.known_node_js_versions?(ary)
119
+ ary = ary.map(&:to_s)
120
+
121
+ unknown = ary - KNOWN_NODE_VERSIONS
122
+ unknown.empty?
123
+ end
124
+
125
+ def self.known_php_versions?(ary)
126
+ ary = ary.map(&:to_s)
127
+
128
+ unknown = ary - KNOWN_PHP_VERSIONS
129
+ unknown.empty?
130
+ end
131
+
89
132
  end
90
133
  end
91
134
  end
@@ -1,6 +1,6 @@
1
1
  module Travis
2
2
  module Lint
3
- VERSION = "1.1.0"
3
+ VERSION = "1.2.0"
4
4
  Version = VERSION
5
5
  end
6
6
  end
@@ -0,0 +1,5 @@
1
+ language: node_js
2
+ node_js:
3
+ - 0.5
4
+ - 110.00
5
+ - node-webscale
@@ -0,0 +1,5 @@
1
+ language: php
2
+ php:
3
+ - 0.5
4
+ - 6.0
5
+ - jphp
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - rubizilla
4
+ - ruby-1.8.7-p248
5
+ - goruby
@@ -105,6 +105,56 @@ describe "A .travis.yml" do
105
105
  end
106
106
 
107
107
 
108
+ let(:docs) { "Travis CI documentation at http://bit.ly/travis-ci-environment" }
109
+
110
+
111
+ context "and uses an unsupported Ruby version" do
112
+ let(:unsupported_rubies) do
113
+ { :key => :rvm, :issue => "Detected unsupported Ruby versions. For an up-to-date list of supported Rubies, see #{docs}" }
114
+ end
115
+
116
+ let(:travis_yml) do
117
+ { :language => "ruby", :rvm => ["neoruby", "goruby", "bonanzaruby"] }
118
+ end
119
+
120
+ it "is invalid" do
121
+ Travis::Lint::Linter.validate(travis_yml).should include(unsupported_rubies)
122
+ Travis::Lint::Linter.valid?(content_of_sample_file("uses_unsupported_rubies.yml")).should be_false
123
+ end
124
+ end
125
+
126
+
127
+ context "and uses an unsupported Node.js version" do
128
+ let(:unsupported_nodejs) do
129
+ { :key => :node_js, :issue => "Detected unsupported Node.js versions. For an up-to-date list of supported Node.js versions, see #{docs}" }
130
+ end
131
+
132
+ let(:travis_yml) do
133
+ { :language => "node_js", :node_js => ["100.0", "0.5"] }
134
+ end
135
+
136
+ it "is invalid" do
137
+ Travis::Lint::Linter.validate(travis_yml).should include(unsupported_nodejs)
138
+ Travis::Lint::Linter.valid?(content_of_sample_file("uses_unsupported_nodejs.yml")).should be_false
139
+ end
140
+ end
141
+
142
+ context "and uses an unsupported PHP version" do
143
+ let(:unsupported_php) do
144
+ { :key => :php, :issue => "Detected unsupported PHP versions. For an up-to-date list of supported PHP versions, see #{docs}" }
145
+ end
146
+
147
+ let(:travis_yml) do
148
+ { :language => "php", :php => ["100.0", "0.5"] }
149
+ end
150
+
151
+ it "is invalid" do
152
+ Travis::Lint::Linter.validate(travis_yml).should include(unsupported_php)
153
+ Travis::Lint::Linter.valid?(content_of_sample_file("uses_unsupported_php.yml")).should be_false
154
+ end
155
+ end
156
+
157
+
108
158
  context "that specifies Ruby as the language but tries to set node_js version" do
109
159
  let(:travis_yml) do
110
160
  { :language => "ruby", :rvm => ["1.9.3"], :node_js => ["0.6"] }
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: travis-lint
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 1
8
+ - 2
9
9
  - 0
10
- version: 1.1.0
10
+ version: 1.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Michael S. Klishin
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2012-02-16 00:00:00 Z
19
+ date: 2012-02-17 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: hashr
@@ -79,6 +79,9 @@ files:
79
79
  - spec/files/uses_jruby_instead_of_jruby_in_specific_mode.yml
80
80
  - spec/files/uses_old_rbx_aliases.yml
81
81
  - spec/files/uses_ruby_as_language_but_tries_to_switch_nodejs.yml
82
+ - spec/files/uses_unsupported_nodejs.yml
83
+ - spec/files/uses_unsupported_php.yml
84
+ - spec/files/uses_unsupported_rubies.yml
82
85
  - spec/spec_helper.rb
83
86
  - spec/travis_lint_spec.rb
84
87
  - travis-lint.gemspec
@@ -115,11 +118,5 @@ rubygems_version: 1.8.15
115
118
  signing_key:
116
119
  specification_version: 3
117
120
  summary: Checks your .travis.yml for possible issues, deprecations and so on
118
- test_files:
119
- - spec/files/no_language_key.yml
120
- - spec/files/no_rvm_key.yml
121
- - spec/files/uses_jruby_instead_of_jruby_in_specific_mode.yml
122
- - spec/files/uses_old_rbx_aliases.yml
123
- - spec/files/uses_ruby_as_language_but_tries_to_switch_nodejs.yml
124
- - spec/spec_helper.rb
125
- - spec/travis_lint_spec.rb
121
+ test_files: []
122
+