travis-lint 1.0.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/.gitignore +6 -0
- data/.rspec +3 -0
- data/.travis.yml +18 -0
- data/Gemfile +7 -0
- data/LICENSE +22 -0
- data/README.md +36 -0
- data/bin/travis-lint +31 -0
- data/lib/travis/lint.rb +4 -0
- data/lib/travis/lint/dsl.rb +26 -0
- data/lib/travis/lint/linter.rb +88 -0
- data/lib/travis/lint/runner.rb +79 -0
- data/lib/travis/lint/validator.rb +15 -0
- data/lib/travis/lint/version.rb +6 -0
- data/spec/files/no_language_key.yml +16 -0
- data/spec/files/no_rvm_key.yml +1 -0
- data/spec/files/uses_jruby_instead_of_jruby_in_specific_mode.yml +4 -0
- data/spec/files/uses_old_rbx_aliases.yml +5 -0
- data/spec/files/uses_ruby_as_language_but_tries_to_switch_nodejs.yml +5 -0
- data/spec/spec_helper.rb +11 -0
- data/spec/travis_lint_spec.rb +109 -0
- data/travis-lint.gemspec +26 -0
- metadata +141 -0
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
- 1.9.2
|
4
|
+
- 1.9.3
|
5
|
+
- jruby-18mode
|
6
|
+
- jruby-19mode
|
7
|
+
- rbx-18mode
|
8
|
+
- rbx-19mode
|
9
|
+
- jruby-head
|
10
|
+
- ruby-head
|
11
|
+
- 1.8.7
|
12
|
+
script: bundle exec rspec -c spec
|
13
|
+
notifications:
|
14
|
+
irc: "irc.freenode.org#travis"
|
15
|
+
email:
|
16
|
+
recepients:
|
17
|
+
- michaelklishin@me.com
|
18
|
+
|
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
MIT LICENSE
|
2
|
+
|
3
|
+
Copyright (c) 2012 Travis CI Development Team <contact@travis-ci.org>
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
22
|
+
|
data/README.md
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
# What is travis-lint
|
2
|
+
|
3
|
+
`travis-lint` is a tool that checks your `.travis.yml` file for possible issues, deprecations and so on.
|
4
|
+
|
5
|
+
[](http://travis-ci.org/travis-ci/travis-lint)
|
6
|
+
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
TBD: we need to do initial gem release first
|
11
|
+
|
12
|
+
|
13
|
+
## Usage
|
14
|
+
|
15
|
+
travis-lint ./.travis.yml
|
16
|
+
travis-lint ~/your/project/.travis.yml
|
17
|
+
|
18
|
+
|
19
|
+
## Development
|
20
|
+
|
21
|
+
Install dependencies with
|
22
|
+
|
23
|
+
bundle install
|
24
|
+
|
25
|
+
then run tests with
|
26
|
+
|
27
|
+
bundle exec rspec spec
|
28
|
+
|
29
|
+
Once you are done with your changes, push a branch and submit a pull request.
|
30
|
+
|
31
|
+
|
32
|
+
## License & Copyright
|
33
|
+
|
34
|
+
Copyright 2012 (c) Travis CI Development Team.
|
35
|
+
|
36
|
+
Released under the MIT license.
|
data/bin/travis-lint
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'travis/lint'
|
5
|
+
|
6
|
+
runner = Travis::Lint::Runner.new(ARGV)
|
7
|
+
runner.run
|
8
|
+
rescue LoadError => e
|
9
|
+
$stderr.puts <<-EOS
|
10
|
+
#{'*'*50}
|
11
|
+
Could not find 'travis/lint'
|
12
|
+
|
13
|
+
This may happen if you're using rubygems as your package manager, but it is not
|
14
|
+
being required through some mechanism before executing the travis-lint command.
|
15
|
+
|
16
|
+
You may need to do one of the following in your shell:
|
17
|
+
|
18
|
+
# for bash/zsh
|
19
|
+
export RUBYOPT=rubygems
|
20
|
+
|
21
|
+
# for csh, etc.
|
22
|
+
set RUBYOPT=rubygems
|
23
|
+
|
24
|
+
For background, please see http://gist.github.com/54177.
|
25
|
+
#{'*'*50}
|
26
|
+
EOS
|
27
|
+
|
28
|
+
raise e
|
29
|
+
|
30
|
+
exit(1)
|
31
|
+
end
|
data/lib/travis/lint.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require "travis/lint/validator"
|
2
|
+
|
3
|
+
module Travis
|
4
|
+
module Lint
|
5
|
+
module DSL
|
6
|
+
@@validators = []
|
7
|
+
|
8
|
+
def validator_for(language, key, message, &validator)
|
9
|
+
@@validators << Validator.new(language, key, message, validator)
|
10
|
+
end
|
11
|
+
|
12
|
+
|
13
|
+
def validators_for_language(language)
|
14
|
+
@@validators.select { |v| v.language.to_s.downcase == language.to_s.downcase }
|
15
|
+
end
|
16
|
+
|
17
|
+
def generic_validators
|
18
|
+
@@validators.select { |v| v.language.to_s.downcase == :all.to_s }
|
19
|
+
end
|
20
|
+
|
21
|
+
def find_validators_for(language)
|
22
|
+
generic_validators + validators_for_language(language)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
require "active_support/core_ext/object/blank"
|
2
|
+
require "travis/lint/dsl"
|
3
|
+
|
4
|
+
module Travis
|
5
|
+
module Lint
|
6
|
+
class Linter
|
7
|
+
|
8
|
+
#
|
9
|
+
# Behaviors
|
10
|
+
#
|
11
|
+
|
12
|
+
extend Lint::DSL
|
13
|
+
|
14
|
+
|
15
|
+
#
|
16
|
+
# API
|
17
|
+
#
|
18
|
+
|
19
|
+
def self.validate(hsh)
|
20
|
+
issues = find_validators_for(hsh[:language]).inject([]) do |acc, val|
|
21
|
+
acc << val.call(hsh)
|
22
|
+
acc
|
23
|
+
end.reject(&:first).map { |pair| pair[1] }
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.valid?(hsh)
|
27
|
+
validate(hsh).empty?
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
#
|
32
|
+
# General
|
33
|
+
#
|
34
|
+
|
35
|
+
validator_for :all, :language, "Language: key is mandatory" do |hsh|
|
36
|
+
hsh[:language].blank?
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
#
|
41
|
+
# Erlang
|
42
|
+
#
|
43
|
+
|
44
|
+
validator_for :erlang, :otp_release, "Specify OTP releases you want to test against using the :otp_release key" do |hsh|
|
45
|
+
hsh[:language].to_s.downcase == "erlang" && hsh[:otp_release].blank?
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
#
|
50
|
+
# Ruby
|
51
|
+
#
|
52
|
+
|
53
|
+
validator_for :ruby, :rvm, "Specify Ruby versions/implementations you want to test against using the :rvm key" do |hsh|
|
54
|
+
hsh[:language].to_s.downcase == "ruby" && hsh[:rvm].blank?
|
55
|
+
end
|
56
|
+
|
57
|
+
validator_for :ruby, :rvm, "Prefer jruby-18mode RVM alias to jruby" do |hsh|
|
58
|
+
hsh[:rvm].is_a?(Array) && hsh[:rvm].include?("jruby")
|
59
|
+
end
|
60
|
+
|
61
|
+
validator_for :ruby, :rvm, "Prefer rbx-18mode RVM alias to rbx" do |hsh|
|
62
|
+
hsh[:rvm].is_a?(Array) && hsh[:rvm].include?("rbx")
|
63
|
+
end
|
64
|
+
|
65
|
+
validator_for :ruby, :rvm, "rbx-2.0 RVM alias is no longer provided. Please use rbx-18mode or rbx-19mode instead." do |hsh|
|
66
|
+
hsh[:rvm].is_a?(Array) && hsh[:rvm].include?("rbx-2.0")
|
67
|
+
end
|
68
|
+
|
69
|
+
validator_for :ruby, :rvm, "rbx-2.0.0pre RVM alias is no longer provided. Please use rbx-18mode or rbx-19mode instead." do |hsh|
|
70
|
+
hsh[:rvm].is_a?(Array) && hsh[:rvm].include?("rbx-2.0.0pre")
|
71
|
+
end
|
72
|
+
|
73
|
+
validator_for :ruby, :rvm, "Ruby 1.9.1 is no longer maintained and is no longer provided on travis-ci.org. Please move to 1.9.3." do |hsh|
|
74
|
+
hsh[:rvm].is_a?(Array) && hsh[:rvm].include?("1.9.1")
|
75
|
+
end
|
76
|
+
|
77
|
+
validator_for :ruby, :rvm, "Ruby 1.8.6 is no longer maintained and is no longer provided on travis-ci.org. Please move to 1.8.7." do |hsh|
|
78
|
+
hsh[:rvm].is_a?(Array) && hsh[:rvm].include?("1.8.6")
|
79
|
+
end
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
validator_for :ruby, :language, "Language is set to Ruby but node_js key is present. Ruby builder will ignore node_js key." do |hsh|
|
84
|
+
hsh[:language].to_s.downcase == "ruby" && hsh[:node_js].present?
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require "pathname"
|
2
|
+
require "yaml"
|
3
|
+
|
4
|
+
require "hashr"
|
5
|
+
|
6
|
+
require "travis/lint/linter"
|
7
|
+
|
8
|
+
module Travis
|
9
|
+
module Lint
|
10
|
+
|
11
|
+
class Runner
|
12
|
+
def initialize(argv)
|
13
|
+
if argv.empty?
|
14
|
+
if File.exists?(".travis.yml")
|
15
|
+
argv = [".travis.yml"]
|
16
|
+
else
|
17
|
+
show_help
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
@travis_file_path = Pathname.new(argv.first).expand_path
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
def run
|
26
|
+
check_that_travis_yml_file_exists!
|
27
|
+
check_that_travis_yml_file_is_valid_yaml!
|
28
|
+
|
29
|
+
if (issues = Linter.validate(self.parsed_travis_yml)).empty?
|
30
|
+
puts "Hooray, .travis.yml at #{@travis_file_path} seems to be solid!"
|
31
|
+
else
|
32
|
+
issues.each do |i|
|
33
|
+
puts "Found an issue with the `#{i[:key]}:` key:\n\n\t#{i[:issue]}"
|
34
|
+
puts
|
35
|
+
puts
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
protected
|
42
|
+
|
43
|
+
def check_that_travis_yml_file_exists!
|
44
|
+
quit("Cannot read #{@travis_file_path}: file does not exist or is not readable") unless File.exists?(@travis_file_path) &&
|
45
|
+
File.file?(@travis_file_path) &&
|
46
|
+
File.readable?(@travis_file_path)
|
47
|
+
end
|
48
|
+
|
49
|
+
def check_that_travis_yml_file_is_valid_yaml!
|
50
|
+
begin
|
51
|
+
YAML.load_file(@travis_file_path)
|
52
|
+
rescue ArgumentError, Psych::SyntaxError => e
|
53
|
+
quit ".travis.yml at #{@travis_file_path} is not a valid YAML file and thus will be ignored by Travis CI."
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def parsed_travis_yml
|
58
|
+
Hashr.new(YAML.load_file(@travis_file_path))
|
59
|
+
end
|
60
|
+
|
61
|
+
def show_help
|
62
|
+
puts <<-EOS
|
63
|
+
Usage:
|
64
|
+
|
65
|
+
travis-lint [path to your .travis.yml]
|
66
|
+
EOS
|
67
|
+
|
68
|
+
exit(1)
|
69
|
+
end
|
70
|
+
|
71
|
+
def quit(message, status = 1)
|
72
|
+
puts message
|
73
|
+
puts
|
74
|
+
|
75
|
+
exit(status)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Travis
|
2
|
+
module Lint
|
3
|
+
module DSL
|
4
|
+
class Validator < Struct.new(:language, :key, :message, :validator)
|
5
|
+
def call(hash)
|
6
|
+
if self.validator.call(hash)
|
7
|
+
[false, { :key => self.key, :issue => self.message }]
|
8
|
+
else
|
9
|
+
[true, {}]
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
language: ruby
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "A .travis.yml" do
|
4
|
+
let(:language_key_is_mandatory) do
|
5
|
+
{ :key => :language, :issue => "Language: key is mandatory" }
|
6
|
+
end
|
7
|
+
|
8
|
+
let(:rvm_key_is_recommended) do
|
9
|
+
{ :key => :rvm, :issue => "Specify Ruby versions/implementations you want to test against using the :rvm key" }
|
10
|
+
end
|
11
|
+
|
12
|
+
let(:prefer_jruby18mode_over_jruby) do
|
13
|
+
{ :key => :rvm, :issue => "Prefer jruby-18mode RVM alias to jruby" }
|
14
|
+
end
|
15
|
+
|
16
|
+
let(:prefer_rbx18mode_over_rbx) do
|
17
|
+
{ :key => :rvm, :issue => "Prefer rbx-18mode RVM alias to rbx" }
|
18
|
+
end
|
19
|
+
|
20
|
+
let(:rbx20_is_no_longer_provided) do
|
21
|
+
{ :key => :rvm, :issue => "rbx-2.0 RVM alias is no longer provided. Please use rbx-18mode or rbx-19mode instead." }
|
22
|
+
end
|
23
|
+
|
24
|
+
let(:rbx200pre_is_no_longer_provided) do
|
25
|
+
{ :key => :rvm, :issue => "rbx-2.0.0pre RVM alias is no longer provided. Please use rbx-18mode or rbx-19mode instead." }
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
def content_of_sample_file(name)
|
30
|
+
path = Pathname.new(File.join("spec", "files", name)).expand_path
|
31
|
+
|
32
|
+
Hashr.new(YAML.load_file(path.to_s))
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
context "that is blank" do
|
37
|
+
it "is invalid" do
|
38
|
+
Travis::Lint::Linter.validate({}).should include(language_key_is_mandatory)
|
39
|
+
|
40
|
+
Travis::Lint::Linter.valid?(content_of_sample_file("no_language_key.yml")).should be_false
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
context "that has language set to Ruby" do
|
45
|
+
context "but has no :rvm key" do
|
46
|
+
it "is invalid" do
|
47
|
+
Travis::Lint::Linter.validate({ :language => "ruby" }).should include(rvm_key_is_recommended)
|
48
|
+
Travis::Lint::Linter.valid?(content_of_sample_file("no_rvm_key.yml")).should be_false
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
|
53
|
+
context "and uses jruby instead of jruby-18mode" do
|
54
|
+
let(:travis_yml) do
|
55
|
+
{ :language => "ruby", :rvm => ["jruby"] }
|
56
|
+
end
|
57
|
+
|
58
|
+
it "is invalid" do
|
59
|
+
Travis::Lint::Linter.validate(travis_yml).should include(prefer_jruby18mode_over_jruby)
|
60
|
+
Travis::Lint::Linter.valid?(content_of_sample_file("uses_jruby_instead_of_jruby_in_specific_mode.yml")).should be_false
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
context "and uses rbx instead of rbx-18mode" do
|
66
|
+
let(:travis_yml) do
|
67
|
+
{ :language => "ruby", :rvm => ["rbx", "1.9.3"] }
|
68
|
+
end
|
69
|
+
|
70
|
+
it "is invalid" do
|
71
|
+
Travis::Lint::Linter.validate(travis_yml).should include(prefer_rbx18mode_over_rbx)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
context "and uses rbx-2.0 instead of rbx-18mode" do
|
77
|
+
let(:travis_yml) do
|
78
|
+
{ :language => "ruby", :rvm => ["rbx-2.0", "1.9.3"] }
|
79
|
+
end
|
80
|
+
|
81
|
+
it "is invalid" do
|
82
|
+
Travis::Lint::Linter.validate(travis_yml).should include(rbx20_is_no_longer_provided)
|
83
|
+
Travis::Lint::Linter.valid?(content_of_sample_file("uses_old_rbx_aliases.yml")).should be_false
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
|
88
|
+
context "and uses rbx-2.0.0pre instead of rbx-18mode" do
|
89
|
+
let(:travis_yml) do
|
90
|
+
{ :language => "ruby", :rvm => ["rbx-2.0.0pre", "1.9.3"] }
|
91
|
+
end
|
92
|
+
|
93
|
+
it "is invalid" do
|
94
|
+
Travis::Lint::Linter.validate(travis_yml).should include(rbx200pre_is_no_longer_provided)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
|
99
|
+
context "that specifies Ruby as the language but tries to set node_js version" do
|
100
|
+
let(:travis_yml) do
|
101
|
+
{ :language => "ruby", :rvm => ["1.9.3"], :node_js => ["0.6"] }
|
102
|
+
end
|
103
|
+
|
104
|
+
it "is invalid" do
|
105
|
+
Travis::Lint::Linter.validate(travis_yml).should include({ :key => :language, :issue => "Language is set to Ruby but node_js key is present. Ruby builder will ignore node_js key." })
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
data/travis-lint.gemspec
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "travis/lint/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "travis-lint"
|
7
|
+
s.version = Travis::Lint::Version.to_s
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Michael S. Klishin", "Travis CI Development Team"]
|
10
|
+
s.email = ["michaelklishin@me.com", "michael@novemberain.com"]
|
11
|
+
s.homepage = "http://github.com/travis-ci"
|
12
|
+
s.summary = %q{Checks your .travis.yml for possible issues, deprecations and so on}
|
13
|
+
s.description = %q{travis-lint is a tool that check your .travis.yml for possible issues, deprecations and so on. Recommended for all travis-ci.org users.}
|
14
|
+
s.files = `git ls-files`.split("\n")
|
15
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
16
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
17
|
+
s.require_paths = ["lib"]
|
18
|
+
|
19
|
+
s.add_runtime_dependency("activesupport", ["~> 3.2.0"])
|
20
|
+
# activesupport 3.1 and 3.2 have a bug in HashWithIndifferentAccess that
|
21
|
+
# causes an undefined method exception when hash values are arrays, so we
|
22
|
+
# retreat to Hashr. MK.
|
23
|
+
s.add_runtime_dependency("hashr", [">= 0.0.19"])
|
24
|
+
|
25
|
+
s.add_development_dependency("rspec", ["~> 2.8.0"])
|
26
|
+
end
|
metadata
ADDED
@@ -0,0 +1,141 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: travis-lint
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 23
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
version: 1.0.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Michael S. Klishin
|
14
|
+
- Travis CI Development Team
|
15
|
+
autorequire:
|
16
|
+
bindir: bin
|
17
|
+
cert_chain: []
|
18
|
+
|
19
|
+
date: 2012-02-10 00:00:00 Z
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: activesupport
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 15
|
30
|
+
segments:
|
31
|
+
- 3
|
32
|
+
- 2
|
33
|
+
- 0
|
34
|
+
version: 3.2.0
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: hashr
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 57
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
- 0
|
49
|
+
- 19
|
50
|
+
version: 0.0.19
|
51
|
+
type: :runtime
|
52
|
+
version_requirements: *id002
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: rspec
|
55
|
+
prerelease: false
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
hash: 47
|
62
|
+
segments:
|
63
|
+
- 2
|
64
|
+
- 8
|
65
|
+
- 0
|
66
|
+
version: 2.8.0
|
67
|
+
type: :development
|
68
|
+
version_requirements: *id003
|
69
|
+
description: travis-lint is a tool that check your .travis.yml for possible issues, deprecations and so on. Recommended for all travis-ci.org users.
|
70
|
+
email:
|
71
|
+
- michaelklishin@me.com
|
72
|
+
- michael@novemberain.com
|
73
|
+
executables:
|
74
|
+
- travis-lint
|
75
|
+
extensions: []
|
76
|
+
|
77
|
+
extra_rdoc_files: []
|
78
|
+
|
79
|
+
files:
|
80
|
+
- .gitignore
|
81
|
+
- .rspec
|
82
|
+
- .travis.yml
|
83
|
+
- Gemfile
|
84
|
+
- LICENSE
|
85
|
+
- README.md
|
86
|
+
- bin/travis-lint
|
87
|
+
- lib/travis/lint.rb
|
88
|
+
- lib/travis/lint/dsl.rb
|
89
|
+
- lib/travis/lint/linter.rb
|
90
|
+
- lib/travis/lint/runner.rb
|
91
|
+
- lib/travis/lint/validator.rb
|
92
|
+
- lib/travis/lint/version.rb
|
93
|
+
- spec/files/no_language_key.yml
|
94
|
+
- spec/files/no_rvm_key.yml
|
95
|
+
- spec/files/uses_jruby_instead_of_jruby_in_specific_mode.yml
|
96
|
+
- spec/files/uses_old_rbx_aliases.yml
|
97
|
+
- spec/files/uses_ruby_as_language_but_tries_to_switch_nodejs.yml
|
98
|
+
- spec/spec_helper.rb
|
99
|
+
- spec/travis_lint_spec.rb
|
100
|
+
- travis-lint.gemspec
|
101
|
+
homepage: http://github.com/travis-ci
|
102
|
+
licenses: []
|
103
|
+
|
104
|
+
post_install_message:
|
105
|
+
rdoc_options: []
|
106
|
+
|
107
|
+
require_paths:
|
108
|
+
- lib
|
109
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
110
|
+
none: false
|
111
|
+
requirements:
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
hash: 3
|
115
|
+
segments:
|
116
|
+
- 0
|
117
|
+
version: "0"
|
118
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
|
+
none: false
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
hash: 3
|
124
|
+
segments:
|
125
|
+
- 0
|
126
|
+
version: "0"
|
127
|
+
requirements: []
|
128
|
+
|
129
|
+
rubyforge_project:
|
130
|
+
rubygems_version: 1.8.10
|
131
|
+
signing_key:
|
132
|
+
specification_version: 3
|
133
|
+
summary: Checks your .travis.yml for possible issues, deprecations and so on
|
134
|
+
test_files:
|
135
|
+
- spec/files/no_language_key.yml
|
136
|
+
- spec/files/no_rvm_key.yml
|
137
|
+
- spec/files/uses_jruby_instead_of_jruby_in_specific_mode.yml
|
138
|
+
- spec/files/uses_old_rbx_aliases.yml
|
139
|
+
- spec/files/uses_ruby_as_language_but_tries_to_switch_nodejs.yml
|
140
|
+
- spec/spec_helper.rb
|
141
|
+
- spec/travis_lint_spec.rb
|