travis-yaml 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/.rspec +3 -0
- data/.travis.yml +14 -0
- data/Gemfile +9 -0
- data/Gemfile.lock +73 -0
- data/LICENSE +22 -0
- data/README.md +232 -0
- data/Rakefile +3 -0
- data/SPEC.md +1018 -0
- data/bench/parser_bench.rb +54 -0
- data/config.ru +2 -0
- data/lib/travis/yaml.rb +43 -0
- data/lib/travis/yaml/matrix.rb +65 -0
- data/lib/travis/yaml/nodes.rb +40 -0
- data/lib/travis/yaml/nodes/branches.rb +12 -0
- data/lib/travis/yaml/nodes/bundler_args.rb +6 -0
- data/lib/travis/yaml/nodes/cache.rb +29 -0
- data/lib/travis/yaml/nodes/compiler.rb +7 -0
- data/lib/travis/yaml/nodes/compiler_entry.rb +9 -0
- data/lib/travis/yaml/nodes/deploy.rb +7 -0
- data/lib/travis/yaml/nodes/deploy_conditions.rb +12 -0
- data/lib/travis/yaml/nodes/deploy_entry.rb +10 -0
- data/lib/travis/yaml/nodes/env.rb +36 -0
- data/lib/travis/yaml/nodes/fixed_value.rb +60 -0
- data/lib/travis/yaml/nodes/git.rb +9 -0
- data/lib/travis/yaml/nodes/jdk.rb +11 -0
- data/lib/travis/yaml/nodes/language.rb +18 -0
- data/lib/travis/yaml/nodes/language_specific.rb +45 -0
- data/lib/travis/yaml/nodes/mapping.rb +204 -0
- data/lib/travis/yaml/nodes/matrix.rb +36 -0
- data/lib/travis/yaml/nodes/node.rb +102 -0
- data/lib/travis/yaml/nodes/notifications.rb +77 -0
- data/lib/travis/yaml/nodes/open_mapping.rb +18 -0
- data/lib/travis/yaml/nodes/os.rb +21 -0
- data/lib/travis/yaml/nodes/os_entry.rb +19 -0
- data/lib/travis/yaml/nodes/root.rb +44 -0
- data/lib/travis/yaml/nodes/ruby.rb +11 -0
- data/lib/travis/yaml/nodes/scalar.rb +97 -0
- data/lib/travis/yaml/nodes/sequence.rb +84 -0
- data/lib/travis/yaml/nodes/stage.rb +6 -0
- data/lib/travis/yaml/nodes/version.rb +6 -0
- data/lib/travis/yaml/nodes/version_list.rb +7 -0
- data/lib/travis/yaml/nodes/virtual_env.rb +7 -0
- data/lib/travis/yaml/parser.rb +31 -0
- data/lib/travis/yaml/parser/dummy.rb +13 -0
- data/lib/travis/yaml/parser/psych.rb +217 -0
- data/lib/travis/yaml/parser/ruby.rb +77 -0
- data/lib/travis/yaml/secure_string.rb +12 -0
- data/lib/travis/yaml/version.rb +5 -0
- data/play/lint.rb +8 -0
- data/play/spec.rb +183 -0
- data/play/weblint.rb +296 -0
- data/spec/nodes/.rb +0 -0
- data/spec/nodes/branches_spec.rb +45 -0
- data/spec/nodes/bundler_args_spec.rb +9 -0
- data/spec/nodes/cache_spec.rb +55 -0
- data/spec/nodes/compiler_spec.rb +14 -0
- data/spec/nodes/deploy_spec.rb +83 -0
- data/spec/nodes/git_spec.rb +55 -0
- data/spec/nodes/jdk_spec.rb +41 -0
- data/spec/nodes/language_spec.rb +79 -0
- data/spec/nodes/notifications_spec.rb +45 -0
- data/spec/nodes/os_spec.rb +28 -0
- data/spec/nodes/ruby_spec.rb +69 -0
- data/spec/nodes/stage_spec.rb +34 -0
- data/spec/nodes/virtual_env_spec.rb +9 -0
- data/spec/parser/dummy_spec.rb +7 -0
- data/spec/parser/ruby_spec.rb +41 -0
- data/spec/support.rb +3 -0
- data/spec/support/coverage.rb +11 -0
- data/spec/support/environment.rb +1 -0
- data/spec/yaml_spec.rb +26 -0
- data/travis-yaml.gemspec +24 -0
- metadata +207 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 752665752154cdb3b8bc22e2dd0cf9eb6c79e36c
|
4
|
+
data.tar.gz: c7449c2793420fe650091f84eb749e037436c453
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 751b783a0265500138733893196c3853ec3f8eeee609a921077dad79bd7e8fcbfbef093259657ce9737112f6ea8234f00886663fdc167fe931ac721ca2eb54ef
|
7
|
+
data.tar.gz: 161583c79e9e1e820e1a9495d10b103d4f2a715a59d6956a4f1d8112fe07cb0baa328a69986d8613cdf716cca405d9c819e885fd69ad0db69bba5daa8539797e
|
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
.coverage
|
data/.rspec
ADDED
data/.travis.yml
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
- 1.9.3
|
4
|
+
- 2.0.0
|
5
|
+
script: bundle exec rspec
|
6
|
+
bundler_args: "--without play"
|
7
|
+
deploy:
|
8
|
+
provider: heroku
|
9
|
+
api_key:
|
10
|
+
secure: OrCcUz+MNjlxNkReqCvQZq62Y5mdKxjA+Lwo6VdsuoWHIJ8ShKIZUhoWOE6B0VIYSxSBObkXULitqiuZAvJfHSmS6soowPc79VvVeetMkIxRbHG9v3utg5O5pHqjHeW7pOWwrvTR5sria9YPevFN3+0R/C3xsxnQrc8dw+06jEQ=
|
11
|
+
app: travis-yaml
|
12
|
+
on:
|
13
|
+
repo: travis-ci/travis-yaml
|
14
|
+
ruby: 2.0.0
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
travis-yaml (0.1.0)
|
5
|
+
psych (~> 2.0)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
addressable (2.3.5)
|
11
|
+
backports (3.4.0)
|
12
|
+
diff-lcs (1.2.5)
|
13
|
+
docile (1.1.3)
|
14
|
+
faraday (0.9.0)
|
15
|
+
multipart-post (>= 1.2, < 3)
|
16
|
+
gh (0.13.0)
|
17
|
+
addressable
|
18
|
+
backports
|
19
|
+
faraday (~> 0.8)
|
20
|
+
multi_json (~> 1.0)
|
21
|
+
net-http-persistent (>= 2.7)
|
22
|
+
net-http-pipeline
|
23
|
+
multi_json (1.8.4)
|
24
|
+
multipart-post (2.0.0)
|
25
|
+
net-http-persistent (2.9)
|
26
|
+
net-http-pipeline (1.0.1)
|
27
|
+
psych (2.0.4)
|
28
|
+
rack (1.5.2)
|
29
|
+
rack-protection (1.5.2)
|
30
|
+
rack
|
31
|
+
rake (10.1.1)
|
32
|
+
rspec (3.0.0.beta2)
|
33
|
+
rspec-core (= 3.0.0.beta2)
|
34
|
+
rspec-expectations (= 3.0.0.beta2)
|
35
|
+
rspec-mocks (= 3.0.0.beta2)
|
36
|
+
rspec-core (3.0.0.beta2)
|
37
|
+
rspec-support (= 3.0.0.beta2)
|
38
|
+
rspec-expectations (3.0.0.beta2)
|
39
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
40
|
+
rspec-support (= 3.0.0.beta2)
|
41
|
+
rspec-mocks (3.0.0.beta2)
|
42
|
+
rspec-support (= 3.0.0.beta2)
|
43
|
+
rspec-support (3.0.0.beta2)
|
44
|
+
safe_yaml (1.0.1)
|
45
|
+
sass (3.3.3)
|
46
|
+
simplecov (0.8.2)
|
47
|
+
docile (~> 1.1.0)
|
48
|
+
multi_json
|
49
|
+
simplecov-html (~> 0.8.0)
|
50
|
+
simplecov-html (0.8.0)
|
51
|
+
sinatra (1.4.4)
|
52
|
+
rack (~> 1.4)
|
53
|
+
rack-protection (~> 1.4)
|
54
|
+
tilt (~> 1.3, >= 1.3.4)
|
55
|
+
slim (1.3.9)
|
56
|
+
temple (~> 0.6.3)
|
57
|
+
tilt (~> 1.3, >= 1.3.3)
|
58
|
+
temple (0.6.7)
|
59
|
+
tilt (1.4.1)
|
60
|
+
|
61
|
+
PLATFORMS
|
62
|
+
ruby
|
63
|
+
|
64
|
+
DEPENDENCIES
|
65
|
+
gh
|
66
|
+
rake
|
67
|
+
rspec (~> 3.0.0.beta)
|
68
|
+
safe_yaml (~> 1.0.1)
|
69
|
+
sass (~> 3.1)
|
70
|
+
simplecov
|
71
|
+
sinatra
|
72
|
+
slim (~> 1.3)
|
73
|
+
travis-yaml!
|
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
MIT LICENSE
|
2
|
+
|
3
|
+
Copyright (c) 2014 Travis CI GmbH <support@travis-ci.com>
|
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,232 @@
|
|
1
|
+
# Travis Configuration Parser
|
2
|
+
|
3
|
+
## What is this?
|
4
|
+
|
5
|
+
This project is a library for loading Travis CI build configuration.
|
6
|
+
|
7
|
+
It can create a configuration both from a normal Ruby Hash or a YAML string.
|
8
|
+
These config objects generally behave like normal primitives (hashes, arrays, etc).
|
9
|
+
|
10
|
+
``` ruby
|
11
|
+
require 'travis/yaml'
|
12
|
+
|
13
|
+
config = Travis::Yaml.parse('language: ruby')
|
14
|
+
config = Travis::Yaml.parse(language: 'ruby')
|
15
|
+
|
16
|
+
config[:language] # ruby
|
17
|
+
config.language # ruby
|
18
|
+
|
19
|
+
# using parse! instead of parse will print out warnings
|
20
|
+
Travis::Yaml.parse! deploy: []
|
21
|
+
# .travis.yml: missing key "language", defaulting to "ruby"
|
22
|
+
# .travis.yml: value for "deploy" section is empty, dropping
|
23
|
+
|
24
|
+
# have it generate the build matrix for you
|
25
|
+
Travis::Yaml.matrix('rvm: [jruby, 2.0.0]').each do |matrix_entry|
|
26
|
+
puts matrix_entry.ruby
|
27
|
+
end
|
28
|
+
```
|
29
|
+
|
30
|
+
## Why use it?
|
31
|
+
|
32
|
+
* **Prevents code execution.** Instead of deserializing arbitrary Ruby objects, it only deserializes primitive objects. To go even further, in contrast to SafeYAML, it only deserializes primitive objects that are expected for a certain part of the configuration.
|
33
|
+
* **Prevents memory leaks.** Internally, only expected values are stored in the data structure, discarding any additional data. No user input is converted to symbols (which would allow a memory based DoS attack).
|
34
|
+
* **Normalization is happening in one place.** Travis CI currently does config normalization in many different parts of its infrastructure, making it tedious to determine supported input formats and the resulting internal structure.
|
35
|
+
* **Explicit structure.** Due to the explicit configuration structure, exceptions throughout the system can be greatly reduced, since the configuration will not contain unexpected objects.
|
36
|
+
* **Forgiving about user input.** The parser knows the expected structure and can therefore automatically map some malformed input onto that structure. For instance, `node: 1.10` does not get converted to `node: 1.1` internally, because travis-yaml knows to expect a string here rather than a float.
|
37
|
+
* **Built-in support for encrypted values**, making it easier to support these in different parts of the system and never leak the decrypted form if configuration is being serialized.
|
38
|
+
* **Extensive warning and error handling**, making it possible to use this library for linting and also to display such warnings when running a build.
|
39
|
+
* **Performance.** Using travis-yaml to load a configuration from a YAML string is slightly faster than using psych directly and significantly faster than using safeyaml.
|
40
|
+
* **Compatibility.** This library is written in a way to not only be fully compatible with the current .travis.yml format, but also with the configuration data in the current Travis database and with the code interacting with the configuration data (for instance in travis-build).
|
41
|
+
* **Extensibility.** The configuration structure is easily extended.
|
42
|
+
* **Pluggable parser.** It is easy to write a new parser. This would be useful for instance for the Travis CI command line client, where one could imagine a parser for the small subset of the YAML format that is commonly in use. This would for instance allow to write a parser and serializer able to preserve comments and indentation when modifying the contents of the .travis.yml.
|
43
|
+
|
44
|
+
## What is missing?
|
45
|
+
|
46
|
+
* Full definition of current .travis.yml format
|
47
|
+
* Serialization
|
48
|
+
|
49
|
+
## Defining Structure
|
50
|
+
|
51
|
+
Good starting points for getting into the code are the [root](lib/travis/yaml/nodes/root.rb) node and the [language](lib/travis/yaml/nodes/language.rb) node.
|
52
|
+
|
53
|
+
A parsed configuration is very similar to a syntax tree. To create a new node type, you should inherit from one of the abstract types. Internal vocabulary is taken from the YAML spec rather than the Ruby names (ie, sequence vs array, mapping vs hash).
|
54
|
+
|
55
|
+
### Scalar Values
|
56
|
+
|
57
|
+
Most of the time, scalar values are just strings. In fact, if you create a new scalar node class and don't specify and other supported type, it will treat everything as string.
|
58
|
+
|
59
|
+
``` ruby
|
60
|
+
module Travis::Yaml::Nodes
|
61
|
+
class Example < Scalar
|
62
|
+
end
|
63
|
+
end
|
64
|
+
```
|
65
|
+
|
66
|
+
This will parse `foo` to `"foo"` and `1.10` to `1.10`. This will also generate a warning and discard values like `!float 1.10`.
|
67
|
+
|
68
|
+
#### Value Types
|
69
|
+
|
70
|
+
You can also allow other types and change the default type unsupported implicit types are cast to.
|
71
|
+
|
72
|
+
``` ruby
|
73
|
+
module Travis::Yaml::Nodes
|
74
|
+
class Example < Scalar
|
75
|
+
cast :str, :binary, :int
|
76
|
+
default_type :int
|
77
|
+
end
|
78
|
+
end
|
79
|
+
```
|
80
|
+
|
81
|
+
Available types are `str`, `binary`, `bool`, `float`, `int`, `time`, `secure` and `null`.
|
82
|
+
|
83
|
+
#### Default Value
|
84
|
+
|
85
|
+
It is also possible to give a scalar a default value.
|
86
|
+
|
87
|
+
``` ruby
|
88
|
+
module Travis::Yaml::Nodes
|
89
|
+
class Example < Scalar
|
90
|
+
default_value "example"
|
91
|
+
end
|
92
|
+
end
|
93
|
+
```
|
94
|
+
|
95
|
+
This is handy when using it for a required entry in a mapping (for instance, `language` is required, but has a default).
|
96
|
+
|
97
|
+
#### Fixed Value Set
|
98
|
+
|
99
|
+
For entries that have a well defined set of values, you can inherit from `FixedValue`:
|
100
|
+
|
101
|
+
``` ruby
|
102
|
+
module Travis::Yaml::Nodes
|
103
|
+
class Example < FixedValue
|
104
|
+
ignore_case
|
105
|
+
|
106
|
+
default_value :example
|
107
|
+
value :foo, :bar, baz: :bar
|
108
|
+
end
|
109
|
+
end
|
110
|
+
```
|
111
|
+
|
112
|
+
This will, for example, map `FOO` to `"foo"`, `baz` to `"bar"`, and `blah` to `"example"` (and generate a warning about `blah` being not supported).
|
113
|
+
|
114
|
+
#### Shorthands
|
115
|
+
|
116
|
+
There are shorthands for creating `Scalar` and `FixedValue` subclasses:
|
117
|
+
|
118
|
+
``` ruby
|
119
|
+
module Travis::Yaml::Nodes
|
120
|
+
class Example < Map
|
121
|
+
map :foo, to: Scalar[:int]
|
122
|
+
map :bar, to: FixedValue[:foo, :bar]
|
123
|
+
end
|
124
|
+
end
|
125
|
+
```
|
126
|
+
|
127
|
+
### Sequences
|
128
|
+
|
129
|
+
Sequences correspond to Ruby arrays. If you pass in a scalar or mapping instead of a sequence, it will be treated as if it was a sequence with a single entry of that value.
|
130
|
+
|
131
|
+
``` ruby
|
132
|
+
module Travis::Yaml::Nodes
|
133
|
+
class ExampleList < Sequence
|
134
|
+
type ExampleValue # node type, defaults to Scalar
|
135
|
+
end
|
136
|
+
end
|
137
|
+
```
|
138
|
+
|
139
|
+
### Mappings
|
140
|
+
|
141
|
+
Mappings correspond to hashes in Ruby.
|
142
|
+
|
143
|
+
``` ruby
|
144
|
+
module Travis::Yaml::Nodes
|
145
|
+
class ExampleMapping < Mapping
|
146
|
+
# map the value for the "example" key to an Example node
|
147
|
+
# map the value for the "other" key to an Other node
|
148
|
+
map :example, :other
|
149
|
+
|
150
|
+
# map the values for "foo" and "bar" to a Scalar
|
151
|
+
map :foo, :bar, to: Scalar
|
152
|
+
|
153
|
+
# map "list" to a Sequence, keep it even if it's empty
|
154
|
+
map :list, to: Sequence, drop_empty: false
|
155
|
+
|
156
|
+
# require "setting" to be present
|
157
|
+
map :setting, required: true
|
158
|
+
|
159
|
+
# make "option" an alias for "setting"
|
160
|
+
map :option, to: :setting
|
161
|
+
|
162
|
+
# if a scalar is passed in instead of a mapping, treat it as
|
163
|
+
# the value of "setting" ("foo" becomes { setting: "foo" })
|
164
|
+
prefix_scalar :setting
|
165
|
+
end
|
166
|
+
end
|
167
|
+
```
|
168
|
+
|
169
|
+
#### Open Mappings
|
170
|
+
|
171
|
+
Sometimes it is not possible to define all available keys for a mapping. You can solve this by using an open mapping:
|
172
|
+
|
173
|
+
``` ruby
|
174
|
+
module Travis::Yaml::Nodes
|
175
|
+
class ExampleMapping < OpenMapping
|
176
|
+
# node type for entries not specified (defaults to Scalar)
|
177
|
+
default_type ExampleValue
|
178
|
+
|
179
|
+
# map "setting" to Setting node, make it a requirement
|
180
|
+
map :setting, required: true
|
181
|
+
end
|
182
|
+
end
|
183
|
+
```
|
184
|
+
|
185
|
+
You can also limit the possible keys by overriding `accept_key?`.
|
186
|
+
|
187
|
+
``` ruby
|
188
|
+
module Travis::Yaml::Nodes
|
189
|
+
class ExampleMapping < OpenMapping
|
190
|
+
default_type ExampleValue
|
191
|
+
|
192
|
+
def accept_key?(key)
|
193
|
+
key.start_with? "example_"
|
194
|
+
end
|
195
|
+
end
|
196
|
+
end
|
197
|
+
```
|
198
|
+
|
199
|
+
### Additional Verification
|
200
|
+
|
201
|
+
Besides the generated warnings, validations and normalizations inherent to the structure, you can define your own checks and normalizations by overriding the `verify` method.
|
202
|
+
|
203
|
+
``` ruby
|
204
|
+
module Travis::Yaml::Nodes
|
205
|
+
class Example < Scalar
|
206
|
+
def verify
|
207
|
+
if value == "foo"
|
208
|
+
warning "foo is deprecated, using bar instead"
|
209
|
+
self.value = "bar"
|
210
|
+
end
|
211
|
+
super
|
212
|
+
end
|
213
|
+
end
|
214
|
+
end
|
215
|
+
```
|
216
|
+
|
217
|
+
The `warning` method will generate track a warning, so it can be presented to the user later on. The `error` method will lead to the node being removed from its parent node. It will also propagate the error message as a warning in the parent node.
|
218
|
+
|
219
|
+
### Nested Warnings
|
220
|
+
|
221
|
+
When reflecting upon a node, `warnings` and `errors` will only contain the messages for that specific node. To get all the warnings for the entire tree, use `nested_warnings`, which will also give you the path (as array of strings).
|
222
|
+
|
223
|
+
``` ruby
|
224
|
+
config.nested_warnings.each do |path, message|
|
225
|
+
p path # ["my", "example", "key"]
|
226
|
+
p message # "this is the warning"
|
227
|
+
end
|
228
|
+
```
|
229
|
+
|
230
|
+
## Requirements
|
231
|
+
|
232
|
+
This project requires Ruby 1.9.3 or 2.0.0 and Psych ~> 2.0 (part of the stdlib).
|
data/Rakefile
ADDED
data/SPEC.md
ADDED
@@ -0,0 +1,1018 @@
|
|
1
|
+
## The `.travis.yml` Format
|
2
|
+
Here is a list of all the options understood by travis-yaml.
|
3
|
+
|
4
|
+
Note that stricitly speaking Travis CI might not have the same understanding of these as travis-yaml has at the moment, since travis-yaml is not yet being used.
|
5
|
+
|
6
|
+
### Available Options
|
7
|
+
#### `after_deploy`
|
8
|
+
Commands that will be run on the VM.
|
9
|
+
|
10
|
+
**Expected format:** List of strings; or a single string.
|
11
|
+
|
12
|
+
#### `after_failure`
|
13
|
+
Commands that will be run on the VM.
|
14
|
+
|
15
|
+
**Expected format:** List of strings; or a single string.
|
16
|
+
|
17
|
+
#### `after_result`
|
18
|
+
Commands that will be run on the VM.
|
19
|
+
|
20
|
+
**Expected format:** List of strings; or a single string.
|
21
|
+
|
22
|
+
#### `after_script`
|
23
|
+
Commands that will be run on the VM.
|
24
|
+
|
25
|
+
**Expected format:** List of strings; or a single string.
|
26
|
+
|
27
|
+
#### `after_success`
|
28
|
+
Commands that will be run on the VM.
|
29
|
+
|
30
|
+
**Expected format:** List of strings; or a single string.
|
31
|
+
|
32
|
+
#### `before_deploy`
|
33
|
+
Commands that will be run on the VM.
|
34
|
+
|
35
|
+
**Expected format:** List of strings; or a single string.
|
36
|
+
|
37
|
+
#### `before_install`
|
38
|
+
Commands that will be run on the VM.
|
39
|
+
|
40
|
+
**Expected format:** List of strings; or a single string.
|
41
|
+
|
42
|
+
#### `before_script`
|
43
|
+
Commands that will be run on the VM.
|
44
|
+
|
45
|
+
**Expected format:** List of strings; or a single string.
|
46
|
+
|
47
|
+
#### `branches`
|
48
|
+
**Expected format:** Key value mapping.
|
49
|
+
|
50
|
+
#### `branches.except`
|
51
|
+
**Expected format:** List of strings or regular expressions; or a single string or regular expression.
|
52
|
+
|
53
|
+
#### `branches.only`
|
54
|
+
**Expected format:** List of strings or regular expressions; or a single string or regular expression.
|
55
|
+
|
56
|
+
#### `bundler_args`
|
57
|
+
**This setting is only relevant if [`language`](#language) is set to `ruby` (default).**
|
58
|
+
|
59
|
+
**Expected format:** String.
|
60
|
+
|
61
|
+
#### `cache`
|
62
|
+
**Expected format:** Key value mapping.
|
63
|
+
|
64
|
+
#### `cache.apt`
|
65
|
+
**Expected format:** Boolean value.
|
66
|
+
|
67
|
+
#### `cache.bundler`
|
68
|
+
**Expected format:** Boolean value.
|
69
|
+
|
70
|
+
#### `cache.directories`
|
71
|
+
**Expected format:** List of strings; or a single string.
|
72
|
+
|
73
|
+
#### `compiler`
|
74
|
+
**This setting is only relevant if [`language`](#language) is set to `c` or `cpp`.**
|
75
|
+
|
76
|
+
**Expected format:** List of strings; or a single string.
|
77
|
+
|
78
|
+
#### `compiler[]`
|
79
|
+
Value has to be `gcc` (default) or `clang`; or one of the known aliases: `g++` for `gcc` or `clang++` for `clang`. Setting is not case sensitive.
|
80
|
+
|
81
|
+
**Expected format:** String.
|
82
|
+
|
83
|
+
#### `composer_args`
|
84
|
+
**This setting is only relevant if [`language`](#language) is set to `php`.**
|
85
|
+
|
86
|
+
**Expected format:** String.
|
87
|
+
|
88
|
+
#### `deploy`
|
89
|
+
**Expected format:** List of key value mappings; or a single key value mapping.
|
90
|
+
|
91
|
+
#### `deploy[]`
|
92
|
+
**Expected format:** Key value mapping.
|
93
|
+
|
94
|
+
#### `deploy[].*`
|
95
|
+
**Expected format:** String.
|
96
|
+
|
97
|
+
#### `deploy[].edge`
|
98
|
+
**This setting is experimental and might be removed!**
|
99
|
+
|
100
|
+
**Expected format:** Boolean value.
|
101
|
+
|
102
|
+
#### `deploy[].on`
|
103
|
+
**Expected format:** Key value mapping.
|
104
|
+
|
105
|
+
#### `deploy[].on.all_branches`
|
106
|
+
**Expected format:** Boolean value.
|
107
|
+
|
108
|
+
#### `deploy[].on.branch`
|
109
|
+
**Expected format:** String.
|
110
|
+
|
111
|
+
#### `deploy[].on.condition`
|
112
|
+
**Expected format:** String.
|
113
|
+
|
114
|
+
#### `deploy[].on.jdk`
|
115
|
+
**This setting is only relevant if [`language`](#language) is set to `clojure`, `groovy`, `java`, `ruby` (default), `scala` or `android`.**
|
116
|
+
|
117
|
+
`jdk` version to use.
|
118
|
+
|
119
|
+
**Expected format:** String.
|
120
|
+
|
121
|
+
#### `deploy[].on.node`
|
122
|
+
`node` version to use.
|
123
|
+
|
124
|
+
**Expected format:** String.
|
125
|
+
|
126
|
+
#### `deploy[].on.perl`
|
127
|
+
**This setting is only relevant if [`language`](#language) is set to `perl`.**
|
128
|
+
|
129
|
+
`perl` version to use.
|
130
|
+
|
131
|
+
**Expected format:** String.
|
132
|
+
|
133
|
+
#### `deploy[].on.php`
|
134
|
+
**This setting is only relevant if [`language`](#language) is set to `php`.**
|
135
|
+
|
136
|
+
`php` version to use.
|
137
|
+
|
138
|
+
**Expected format:** String.
|
139
|
+
|
140
|
+
#### `deploy[].on.python`
|
141
|
+
**This setting is only relevant if [`language`](#language) is set to `python`.**
|
142
|
+
|
143
|
+
`python` version to use.
|
144
|
+
|
145
|
+
**Expected format:** String.
|
146
|
+
|
147
|
+
#### `deploy[].on.repo`
|
148
|
+
**Expected format:** String.
|
149
|
+
|
150
|
+
#### `deploy[].on.ruby`
|
151
|
+
**This setting is only relevant if [`language`](#language) is set to `ruby` (default) or `objective-c`.**
|
152
|
+
|
153
|
+
`ruby` version to use.
|
154
|
+
|
155
|
+
**Expected format:** String.
|
156
|
+
|
157
|
+
#### `deploy[].on.rvm`
|
158
|
+
Alias for [`deploy[].on.ruby`](#deployonruby).
|
159
|
+
|
160
|
+
#### `deploy[].on.scala`
|
161
|
+
`scala` version to use.
|
162
|
+
|
163
|
+
**Expected format:** String.
|
164
|
+
|
165
|
+
#### `deploy[].on.tags`
|
166
|
+
**Expected format:** Boolean value.
|
167
|
+
|
168
|
+
#### `deploy[].provider`
|
169
|
+
**This setting is required!**
|
170
|
+
|
171
|
+
**Expected format:** String.
|
172
|
+
|
173
|
+
#### `env`
|
174
|
+
**Expected format:** Key value mapping.
|
175
|
+
|
176
|
+
#### `env.global`
|
177
|
+
**Expected format:** List of strings or encrypted strings; or a single string or encrypted string.
|
178
|
+
|
179
|
+
#### `env.matrix`
|
180
|
+
**Expected format:** List of strings or encrypted strings; or a single string or encrypted string.
|
181
|
+
|
182
|
+
#### `gemfile`
|
183
|
+
**This setting is only relevant if [`language`](#language) is set to `ruby` (default) or `objective-c`.**
|
184
|
+
|
185
|
+
Gemfile(s) to use.
|
186
|
+
|
187
|
+
**Expected format:** List of strings; or a single string.
|
188
|
+
|
189
|
+
#### `ghc`
|
190
|
+
**This setting is only relevant if [`language`](#language) is set to `haskell`.**
|
191
|
+
|
192
|
+
List of `ghc` versions to use.
|
193
|
+
|
194
|
+
**Expected format:** List of strings; or a single string.
|
195
|
+
|
196
|
+
#### `git`
|
197
|
+
**Expected format:** Key value mapping.
|
198
|
+
|
199
|
+
#### `git.depth`
|
200
|
+
**Expected format:** Integer value.
|
201
|
+
|
202
|
+
#### `git.strategy`
|
203
|
+
Value has to be `clone` or `tarball`. Setting is case sensitive.
|
204
|
+
|
205
|
+
**Expected format:** String.
|
206
|
+
|
207
|
+
#### `git.submodules`
|
208
|
+
**Expected format:** Boolean value.
|
209
|
+
|
210
|
+
#### `go`
|
211
|
+
**This setting is only relevant if [`language`](#language) is set to `go`.**
|
212
|
+
|
213
|
+
List of `go` versions to use.
|
214
|
+
|
215
|
+
**Expected format:** List of strings; or a single string.
|
216
|
+
|
217
|
+
#### `gobuild_args`
|
218
|
+
**This setting is only relevant if [`language`](#language) is set to `go`.**
|
219
|
+
|
220
|
+
**Expected format:** String.
|
221
|
+
|
222
|
+
#### `install`
|
223
|
+
Commands that will be run on the VM.
|
224
|
+
|
225
|
+
**Expected format:** List of strings; or a single string.
|
226
|
+
|
227
|
+
#### `jdk`
|
228
|
+
**This setting is only relevant if [`language`](#language) is set to `clojure`, `groovy`, `java`, `ruby` (default), `scala` or `android`.**
|
229
|
+
|
230
|
+
List of `jdk` versions to use.
|
231
|
+
|
232
|
+
**Expected format:** List of strings; or a single string.
|
233
|
+
|
234
|
+
#### `language`
|
235
|
+
**This setting is required!**
|
236
|
+
|
237
|
+
Value has to be `c`, `cpp`, `clojure`, `erlang`, `go`, `groovy`, `haskell`, `java`, `node_js`, `objective-c`, `ruby` (default), `python`, `perl`, `php`, `scala` or `android`; or one of the known aliases: `jvm` for `java`, `javascript` for `node_js`, `node` for `node_js`, `nodejs` for `node_js`, `golang` for `go`, `objective_c` for `objective-c`, `obj_c` for `objective-c`, `objc` for `objective-c`, `c++` for `cpp`, `node.js` for `node_js` or `obj-c` for `objective-c`. Setting is not case sensitive.
|
238
|
+
|
239
|
+
**Expected format:** String.
|
240
|
+
|
241
|
+
#### `lein`
|
242
|
+
**This setting is only relevant if [`language`](#language) is set to `clojure`.**
|
243
|
+
|
244
|
+
List of `lein` versions to use.
|
245
|
+
|
246
|
+
**Expected format:** List of strings; or a single string.
|
247
|
+
|
248
|
+
#### `matrix`
|
249
|
+
**Expected format:** Key value mapping.
|
250
|
+
|
251
|
+
#### `matrix.allow_failures`
|
252
|
+
**Expected format:** List of key value mappings; or a single key value mapping.
|
253
|
+
|
254
|
+
#### `matrix.allow_failures[]`
|
255
|
+
**Expected format:** Key value mapping.
|
256
|
+
|
257
|
+
#### `matrix.allow_failures[].compiler`
|
258
|
+
**This setting is only relevant if [`language`](#language) is set to `c` or `cpp`.**
|
259
|
+
|
260
|
+
Value has to be `gcc` (default) or `clang`; or one of the known aliases: `g++` for `gcc` or `clang++` for `clang`. Setting is not case sensitive.
|
261
|
+
|
262
|
+
**Expected format:** String.
|
263
|
+
|
264
|
+
#### `matrix.allow_failures[].env`
|
265
|
+
**Expected format:** String or encrypted string.
|
266
|
+
|
267
|
+
#### `matrix.allow_failures[].gemfile`
|
268
|
+
**This setting is only relevant if [`language`](#language) is set to `ruby` (default) or `objective-c`.**
|
269
|
+
|
270
|
+
Gemfile to use.
|
271
|
+
|
272
|
+
**Expected format:** String.
|
273
|
+
|
274
|
+
#### `matrix.allow_failures[].ghc`
|
275
|
+
**This setting is only relevant if [`language`](#language) is set to `haskell`.**
|
276
|
+
|
277
|
+
`ghc` version to use.
|
278
|
+
|
279
|
+
**Expected format:** String.
|
280
|
+
|
281
|
+
#### `matrix.allow_failures[].go`
|
282
|
+
**This setting is only relevant if [`language`](#language) is set to `go`.**
|
283
|
+
|
284
|
+
`go` version to use.
|
285
|
+
|
286
|
+
**Expected format:** String.
|
287
|
+
|
288
|
+
#### `matrix.allow_failures[].jdk`
|
289
|
+
**This setting is only relevant if [`language`](#language) is set to `clojure`, `groovy`, `java`, `ruby` (default), `scala` or `android`.**
|
290
|
+
|
291
|
+
`jdk` version to use.
|
292
|
+
|
293
|
+
**Expected format:** String.
|
294
|
+
|
295
|
+
#### `matrix.allow_failures[].lein`
|
296
|
+
**This setting is only relevant if [`language`](#language) is set to `clojure`.**
|
297
|
+
|
298
|
+
`lein` version to use.
|
299
|
+
|
300
|
+
**Expected format:** String.
|
301
|
+
|
302
|
+
#### `matrix.allow_failures[].node`
|
303
|
+
Alias for [`matrix.allow_failures[].node_js`](#matrixallow_failuresnode_js).
|
304
|
+
|
305
|
+
#### `matrix.allow_failures[].node_js`
|
306
|
+
**This setting is only relevant if [`language`](#language) is set to `node_js`.**
|
307
|
+
|
308
|
+
`node_js` version to use.
|
309
|
+
|
310
|
+
**Expected format:** String.
|
311
|
+
|
312
|
+
#### `matrix.allow_failures[].os`
|
313
|
+
Value has to be `linux` (default) or `osx`; or one of the known aliases: `ubuntu` for `linux`, `mac` for `osx` or `macos` for `osx`. Setting is not case sensitive.
|
314
|
+
|
315
|
+
**Expected format:** String.
|
316
|
+
|
317
|
+
#### `matrix.allow_failures[].otp`
|
318
|
+
Alias for [`matrix.allow_failures[].otp_release`](#matrixallow_failuresotp_release).
|
319
|
+
|
320
|
+
#### `matrix.allow_failures[].otp_release`
|
321
|
+
**This setting is only relevant if [`language`](#language) is set to `erlang`.**
|
322
|
+
|
323
|
+
`otp_release` version to use.
|
324
|
+
|
325
|
+
**Expected format:** String.
|
326
|
+
|
327
|
+
#### `matrix.allow_failures[].perl`
|
328
|
+
**This setting is only relevant if [`language`](#language) is set to `perl`.**
|
329
|
+
|
330
|
+
`perl` version to use.
|
331
|
+
|
332
|
+
**Expected format:** String.
|
333
|
+
|
334
|
+
#### `matrix.allow_failures[].php`
|
335
|
+
**This setting is only relevant if [`language`](#language) is set to `php`.**
|
336
|
+
|
337
|
+
`php` version to use.
|
338
|
+
|
339
|
+
**Expected format:** String.
|
340
|
+
|
341
|
+
#### `matrix.allow_failures[].python`
|
342
|
+
**This setting is only relevant if [`language`](#language) is set to `python`.**
|
343
|
+
|
344
|
+
`python` version to use.
|
345
|
+
|
346
|
+
**Expected format:** String.
|
347
|
+
|
348
|
+
#### `matrix.allow_failures[].ruby`
|
349
|
+
**This setting is only relevant if [`language`](#language) is set to `ruby` (default) or `objective-c`.**
|
350
|
+
|
351
|
+
`ruby` version to use.
|
352
|
+
|
353
|
+
**Expected format:** String.
|
354
|
+
|
355
|
+
#### `matrix.allow_failures[].rvm`
|
356
|
+
Alias for [`matrix.allow_failures[].ruby`](#matrixallow_failuresruby).
|
357
|
+
|
358
|
+
#### `matrix.allow_failures[].xcode_scheme`
|
359
|
+
**This setting is only relevant if [`language`](#language) is set to `objective-c`.**
|
360
|
+
|
361
|
+
`xcode_scheme` version to use.
|
362
|
+
|
363
|
+
**Expected format:** String.
|
364
|
+
|
365
|
+
#### `matrix.allow_failures[].xcode_sdk`
|
366
|
+
**This setting is only relevant if [`language`](#language) is set to `objective-c`.**
|
367
|
+
|
368
|
+
`xcode_sdk` version to use.
|
369
|
+
|
370
|
+
**Expected format:** String.
|
371
|
+
|
372
|
+
#### `matrix.exclude`
|
373
|
+
**Expected format:** List of key value mappings; or a single key value mapping.
|
374
|
+
|
375
|
+
#### `matrix.exclude[]`
|
376
|
+
**Expected format:** Key value mapping.
|
377
|
+
|
378
|
+
#### `matrix.exclude[].compiler`
|
379
|
+
**This setting is only relevant if [`language`](#language) is set to `c` or `cpp`.**
|
380
|
+
|
381
|
+
Value has to be `gcc` (default) or `clang`; or one of the known aliases: `g++` for `gcc` or `clang++` for `clang`. Setting is not case sensitive.
|
382
|
+
|
383
|
+
**Expected format:** String.
|
384
|
+
|
385
|
+
#### `matrix.exclude[].env`
|
386
|
+
**Expected format:** String or encrypted string.
|
387
|
+
|
388
|
+
#### `matrix.exclude[].gemfile`
|
389
|
+
**This setting is only relevant if [`language`](#language) is set to `ruby` (default) or `objective-c`.**
|
390
|
+
|
391
|
+
Gemfile to use.
|
392
|
+
|
393
|
+
**Expected format:** String.
|
394
|
+
|
395
|
+
#### `matrix.exclude[].ghc`
|
396
|
+
**This setting is only relevant if [`language`](#language) is set to `haskell`.**
|
397
|
+
|
398
|
+
`ghc` version to use.
|
399
|
+
|
400
|
+
**Expected format:** String.
|
401
|
+
|
402
|
+
#### `matrix.exclude[].go`
|
403
|
+
**This setting is only relevant if [`language`](#language) is set to `go`.**
|
404
|
+
|
405
|
+
`go` version to use.
|
406
|
+
|
407
|
+
**Expected format:** String.
|
408
|
+
|
409
|
+
#### `matrix.exclude[].jdk`
|
410
|
+
**This setting is only relevant if [`language`](#language) is set to `clojure`, `groovy`, `java`, `ruby` (default), `scala` or `android`.**
|
411
|
+
|
412
|
+
`jdk` version to use.
|
413
|
+
|
414
|
+
**Expected format:** String.
|
415
|
+
|
416
|
+
#### `matrix.exclude[].lein`
|
417
|
+
**This setting is only relevant if [`language`](#language) is set to `clojure`.**
|
418
|
+
|
419
|
+
`lein` version to use.
|
420
|
+
|
421
|
+
**Expected format:** String.
|
422
|
+
|
423
|
+
#### `matrix.exclude[].node`
|
424
|
+
Alias for [`matrix.exclude[].node_js`](#matrixexcludenode_js).
|
425
|
+
|
426
|
+
#### `matrix.exclude[].node_js`
|
427
|
+
**This setting is only relevant if [`language`](#language) is set to `node_js`.**
|
428
|
+
|
429
|
+
`node_js` version to use.
|
430
|
+
|
431
|
+
**Expected format:** String.
|
432
|
+
|
433
|
+
#### `matrix.exclude[].os`
|
434
|
+
Value has to be `linux` (default) or `osx`; or one of the known aliases: `ubuntu` for `linux`, `mac` for `osx` or `macos` for `osx`. Setting is not case sensitive.
|
435
|
+
|
436
|
+
**Expected format:** String.
|
437
|
+
|
438
|
+
#### `matrix.exclude[].otp`
|
439
|
+
Alias for [`matrix.exclude[].otp_release`](#matrixexcludeotp_release).
|
440
|
+
|
441
|
+
#### `matrix.exclude[].otp_release`
|
442
|
+
**This setting is only relevant if [`language`](#language) is set to `erlang`.**
|
443
|
+
|
444
|
+
`otp_release` version to use.
|
445
|
+
|
446
|
+
**Expected format:** String.
|
447
|
+
|
448
|
+
#### `matrix.exclude[].perl`
|
449
|
+
**This setting is only relevant if [`language`](#language) is set to `perl`.**
|
450
|
+
|
451
|
+
`perl` version to use.
|
452
|
+
|
453
|
+
**Expected format:** String.
|
454
|
+
|
455
|
+
#### `matrix.exclude[].php`
|
456
|
+
**This setting is only relevant if [`language`](#language) is set to `php`.**
|
457
|
+
|
458
|
+
`php` version to use.
|
459
|
+
|
460
|
+
**Expected format:** String.
|
461
|
+
|
462
|
+
#### `matrix.exclude[].python`
|
463
|
+
**This setting is only relevant if [`language`](#language) is set to `python`.**
|
464
|
+
|
465
|
+
`python` version to use.
|
466
|
+
|
467
|
+
**Expected format:** String.
|
468
|
+
|
469
|
+
#### `matrix.exclude[].ruby`
|
470
|
+
**This setting is only relevant if [`language`](#language) is set to `ruby` (default) or `objective-c`.**
|
471
|
+
|
472
|
+
`ruby` version to use.
|
473
|
+
|
474
|
+
**Expected format:** String.
|
475
|
+
|
476
|
+
#### `matrix.exclude[].rvm`
|
477
|
+
Alias for [`matrix.exclude[].ruby`](#matrixexcluderuby).
|
478
|
+
|
479
|
+
#### `matrix.exclude[].xcode_scheme`
|
480
|
+
**This setting is only relevant if [`language`](#language) is set to `objective-c`.**
|
481
|
+
|
482
|
+
`xcode_scheme` version to use.
|
483
|
+
|
484
|
+
**Expected format:** String.
|
485
|
+
|
486
|
+
#### `matrix.exclude[].xcode_sdk`
|
487
|
+
**This setting is only relevant if [`language`](#language) is set to `objective-c`.**
|
488
|
+
|
489
|
+
`xcode_sdk` version to use.
|
490
|
+
|
491
|
+
**Expected format:** String.
|
492
|
+
|
493
|
+
#### `matrix.fast_finish`
|
494
|
+
**Expected format:** Boolean value.
|
495
|
+
|
496
|
+
#### `matrix.include`
|
497
|
+
**Expected format:** List of key value mappings; or a single key value mapping.
|
498
|
+
|
499
|
+
#### `matrix.include[]`
|
500
|
+
**Expected format:** Key value mapping.
|
501
|
+
|
502
|
+
#### `matrix.include[].compiler`
|
503
|
+
**This setting is only relevant if [`language`](#language) is set to `c` or `cpp`.**
|
504
|
+
|
505
|
+
Value has to be `gcc` (default) or `clang`; or one of the known aliases: `g++` for `gcc` or `clang++` for `clang`. Setting is not case sensitive.
|
506
|
+
|
507
|
+
**Expected format:** String.
|
508
|
+
|
509
|
+
#### `matrix.include[].env`
|
510
|
+
**Expected format:** String or encrypted string.
|
511
|
+
|
512
|
+
#### `matrix.include[].gemfile`
|
513
|
+
**This setting is only relevant if [`language`](#language) is set to `ruby` (default) or `objective-c`.**
|
514
|
+
|
515
|
+
Gemfile to use.
|
516
|
+
|
517
|
+
**Expected format:** String.
|
518
|
+
|
519
|
+
#### `matrix.include[].ghc`
|
520
|
+
**This setting is only relevant if [`language`](#language) is set to `haskell`.**
|
521
|
+
|
522
|
+
`ghc` version to use.
|
523
|
+
|
524
|
+
**Expected format:** String.
|
525
|
+
|
526
|
+
#### `matrix.include[].go`
|
527
|
+
**This setting is only relevant if [`language`](#language) is set to `go`.**
|
528
|
+
|
529
|
+
`go` version to use.
|
530
|
+
|
531
|
+
**Expected format:** String.
|
532
|
+
|
533
|
+
#### `matrix.include[].jdk`
|
534
|
+
**This setting is only relevant if [`language`](#language) is set to `clojure`, `groovy`, `java`, `ruby` (default), `scala` or `android`.**
|
535
|
+
|
536
|
+
`jdk` version to use.
|
537
|
+
|
538
|
+
**Expected format:** String.
|
539
|
+
|
540
|
+
#### `matrix.include[].lein`
|
541
|
+
**This setting is only relevant if [`language`](#language) is set to `clojure`.**
|
542
|
+
|
543
|
+
`lein` version to use.
|
544
|
+
|
545
|
+
**Expected format:** String.
|
546
|
+
|
547
|
+
#### `matrix.include[].node`
|
548
|
+
Alias for [`matrix.include[].node_js`](#matrixincludenode_js).
|
549
|
+
|
550
|
+
#### `matrix.include[].node_js`
|
551
|
+
**This setting is only relevant if [`language`](#language) is set to `node_js`.**
|
552
|
+
|
553
|
+
`node_js` version to use.
|
554
|
+
|
555
|
+
**Expected format:** String.
|
556
|
+
|
557
|
+
#### `matrix.include[].os`
|
558
|
+
Value has to be `linux` (default) or `osx`; or one of the known aliases: `ubuntu` for `linux`, `mac` for `osx` or `macos` for `osx`. Setting is not case sensitive.
|
559
|
+
|
560
|
+
**Expected format:** String.
|
561
|
+
|
562
|
+
#### `matrix.include[].otp`
|
563
|
+
Alias for [`matrix.include[].otp_release`](#matrixincludeotp_release).
|
564
|
+
|
565
|
+
#### `matrix.include[].otp_release`
|
566
|
+
**This setting is only relevant if [`language`](#language) is set to `erlang`.**
|
567
|
+
|
568
|
+
`otp_release` version to use.
|
569
|
+
|
570
|
+
**Expected format:** String.
|
571
|
+
|
572
|
+
#### `matrix.include[].perl`
|
573
|
+
**This setting is only relevant if [`language`](#language) is set to `perl`.**
|
574
|
+
|
575
|
+
`perl` version to use.
|
576
|
+
|
577
|
+
**Expected format:** String.
|
578
|
+
|
579
|
+
#### `matrix.include[].php`
|
580
|
+
**This setting is only relevant if [`language`](#language) is set to `php`.**
|
581
|
+
|
582
|
+
`php` version to use.
|
583
|
+
|
584
|
+
**Expected format:** String.
|
585
|
+
|
586
|
+
#### `matrix.include[].python`
|
587
|
+
**This setting is only relevant if [`language`](#language) is set to `python`.**
|
588
|
+
|
589
|
+
`python` version to use.
|
590
|
+
|
591
|
+
**Expected format:** String.
|
592
|
+
|
593
|
+
#### `matrix.include[].ruby`
|
594
|
+
**This setting is only relevant if [`language`](#language) is set to `ruby` (default) or `objective-c`.**
|
595
|
+
|
596
|
+
`ruby` version to use.
|
597
|
+
|
598
|
+
**Expected format:** String.
|
599
|
+
|
600
|
+
#### `matrix.include[].rvm`
|
601
|
+
Alias for [`matrix.include[].ruby`](#matrixincluderuby).
|
602
|
+
|
603
|
+
#### `matrix.include[].xcode_scheme`
|
604
|
+
**This setting is only relevant if [`language`](#language) is set to `objective-c`.**
|
605
|
+
|
606
|
+
`xcode_scheme` version to use.
|
607
|
+
|
608
|
+
**Expected format:** String.
|
609
|
+
|
610
|
+
#### `matrix.include[].xcode_sdk`
|
611
|
+
**This setting is only relevant if [`language`](#language) is set to `objective-c`.**
|
612
|
+
|
613
|
+
`xcode_sdk` version to use.
|
614
|
+
|
615
|
+
**Expected format:** String.
|
616
|
+
|
617
|
+
#### `node`
|
618
|
+
Alias for [`node_js`](#node_js).
|
619
|
+
|
620
|
+
#### `node_js`
|
621
|
+
**This setting is only relevant if [`language`](#language) is set to `node_js`.**
|
622
|
+
|
623
|
+
List of `node_js` versions to use.
|
624
|
+
|
625
|
+
**Expected format:** List of strings; or a single string.
|
626
|
+
|
627
|
+
#### `notifications`
|
628
|
+
**Expected format:** Key value mapping.
|
629
|
+
|
630
|
+
#### `notifications.campfire`
|
631
|
+
**Expected format:** Key value mapping, or list of strings or encrypted strings, or boolean value.
|
632
|
+
|
633
|
+
#### `notifications.campfire.disabled`
|
634
|
+
**Expected format:** Boolean value.
|
635
|
+
|
636
|
+
#### `notifications.campfire.enabled`
|
637
|
+
**Expected format:** Boolean value.
|
638
|
+
|
639
|
+
#### `notifications.campfire.on_failure`
|
640
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
641
|
+
|
642
|
+
**Expected format:** String.
|
643
|
+
|
644
|
+
#### `notifications.campfire.on_start`
|
645
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
646
|
+
|
647
|
+
**Expected format:** String.
|
648
|
+
|
649
|
+
#### `notifications.campfire.on_success`
|
650
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
651
|
+
|
652
|
+
**Expected format:** String.
|
653
|
+
|
654
|
+
#### `notifications.campfire.rooms`
|
655
|
+
**Expected format:** List of strings; or a single string.
|
656
|
+
|
657
|
+
#### `notifications.campfire.template`
|
658
|
+
Strings will be interpolated. Available variables: `%{repository_slug}`, `%{repository_name}`, `%{repository}`, `%{build_number}`, `%{branch}`, `%{commit}`, `%{author}`, `%{message}`, `%{duration}`, `%{compare_url}`, `%{build_url}`.
|
659
|
+
|
660
|
+
**Expected format:** List of strings; or a single string.
|
661
|
+
|
662
|
+
#### `notifications.email`
|
663
|
+
**Expected format:** Key value mapping, or list of strings or encrypted strings, or boolean value.
|
664
|
+
|
665
|
+
#### `notifications.email.disabled`
|
666
|
+
**Expected format:** Boolean value.
|
667
|
+
|
668
|
+
#### `notifications.email.enabled`
|
669
|
+
**Expected format:** Boolean value.
|
670
|
+
|
671
|
+
#### `notifications.email.on_failure`
|
672
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
673
|
+
|
674
|
+
**Expected format:** String.
|
675
|
+
|
676
|
+
#### `notifications.email.on_start`
|
677
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
678
|
+
|
679
|
+
**Expected format:** String.
|
680
|
+
|
681
|
+
#### `notifications.email.on_success`
|
682
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
683
|
+
|
684
|
+
**Expected format:** String.
|
685
|
+
|
686
|
+
#### `notifications.email.recipients`
|
687
|
+
**Expected format:** List of strings; or a single string.
|
688
|
+
|
689
|
+
#### `notifications.flowdoc`
|
690
|
+
**Expected format:** Key value mapping, or string, encrypted string, or boolean value.
|
691
|
+
|
692
|
+
#### `notifications.flowdoc.api_token`
|
693
|
+
**Expected format:** String or encrypted string.
|
694
|
+
|
695
|
+
#### `notifications.flowdoc.disabled`
|
696
|
+
**Expected format:** Boolean value.
|
697
|
+
|
698
|
+
#### `notifications.flowdoc.enabled`
|
699
|
+
**Expected format:** Boolean value.
|
700
|
+
|
701
|
+
#### `notifications.flowdoc.on_failure`
|
702
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
703
|
+
|
704
|
+
**Expected format:** String.
|
705
|
+
|
706
|
+
#### `notifications.flowdoc.on_start`
|
707
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
708
|
+
|
709
|
+
**Expected format:** String.
|
710
|
+
|
711
|
+
#### `notifications.flowdoc.on_success`
|
712
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
713
|
+
|
714
|
+
**Expected format:** String.
|
715
|
+
|
716
|
+
#### `notifications.hipchat`
|
717
|
+
**Expected format:** Key value mapping, or list of strings or encrypted strings, or boolean value.
|
718
|
+
|
719
|
+
#### `notifications.hipchat.disabled`
|
720
|
+
**Expected format:** Boolean value.
|
721
|
+
|
722
|
+
#### `notifications.hipchat.enabled`
|
723
|
+
**Expected format:** Boolean value.
|
724
|
+
|
725
|
+
#### `notifications.hipchat.format`
|
726
|
+
Value has to be `html` or `text`. Setting is case sensitive.
|
727
|
+
|
728
|
+
**Expected format:** String.
|
729
|
+
|
730
|
+
#### `notifications.hipchat.on_failure`
|
731
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
732
|
+
|
733
|
+
**Expected format:** String.
|
734
|
+
|
735
|
+
#### `notifications.hipchat.on_start`
|
736
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
737
|
+
|
738
|
+
**Expected format:** String.
|
739
|
+
|
740
|
+
#### `notifications.hipchat.on_success`
|
741
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
742
|
+
|
743
|
+
**Expected format:** String.
|
744
|
+
|
745
|
+
#### `notifications.hipchat.rooms`
|
746
|
+
**Expected format:** List of strings; or a single string.
|
747
|
+
|
748
|
+
#### `notifications.hipchat.template`
|
749
|
+
Strings will be interpolated. Available variables: `%{repository_slug}`, `%{repository_name}`, `%{repository}`, `%{build_number}`, `%{branch}`, `%{commit}`, `%{author}`, `%{message}`, `%{duration}`, `%{compare_url}`, `%{build_url}`.
|
750
|
+
|
751
|
+
**Expected format:** List of strings; or a single string.
|
752
|
+
|
753
|
+
#### `notifications.irc`
|
754
|
+
**Expected format:** Key value mapping, or list of strings or encrypted strings, or boolean value.
|
755
|
+
|
756
|
+
#### `notifications.irc.channel_key`
|
757
|
+
**Expected format:** String or encrypted string.
|
758
|
+
|
759
|
+
#### `notifications.irc.channels`
|
760
|
+
**Expected format:** List of strings; or a single string.
|
761
|
+
|
762
|
+
#### `notifications.irc.disabled`
|
763
|
+
**Expected format:** Boolean value.
|
764
|
+
|
765
|
+
#### `notifications.irc.enabled`
|
766
|
+
**Expected format:** Boolean value.
|
767
|
+
|
768
|
+
#### `notifications.irc.nick`
|
769
|
+
**Expected format:** String or encrypted string.
|
770
|
+
|
771
|
+
#### `notifications.irc.nickserv_password`
|
772
|
+
**Expected format:** String or encrypted string.
|
773
|
+
|
774
|
+
#### `notifications.irc.on_failure`
|
775
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
776
|
+
|
777
|
+
**Expected format:** String.
|
778
|
+
|
779
|
+
#### `notifications.irc.on_start`
|
780
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
781
|
+
|
782
|
+
**Expected format:** String.
|
783
|
+
|
784
|
+
#### `notifications.irc.on_success`
|
785
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
786
|
+
|
787
|
+
**Expected format:** String.
|
788
|
+
|
789
|
+
#### `notifications.irc.password`
|
790
|
+
**Expected format:** String or encrypted string.
|
791
|
+
|
792
|
+
#### `notifications.irc.skip_join`
|
793
|
+
**Expected format:** Boolean value.
|
794
|
+
|
795
|
+
#### `notifications.irc.template`
|
796
|
+
Strings will be interpolated. Available variables: `%{repository_slug}`, `%{repository_name}`, `%{repository}`, `%{build_number}`, `%{branch}`, `%{commit}`, `%{author}`, `%{message}`, `%{duration}`, `%{compare_url}`, `%{build_url}`.
|
797
|
+
|
798
|
+
**Expected format:** List of strings; or a single string.
|
799
|
+
|
800
|
+
#### `notifications.irc.use_notice`
|
801
|
+
**Expected format:** Boolean value.
|
802
|
+
|
803
|
+
#### `notifications.slack`
|
804
|
+
**Expected format:** Key value mapping, or list of strings or encrypted strings, or boolean value.
|
805
|
+
|
806
|
+
#### `notifications.slack.disabled`
|
807
|
+
**Expected format:** Boolean value.
|
808
|
+
|
809
|
+
#### `notifications.slack.enabled`
|
810
|
+
**Expected format:** Boolean value.
|
811
|
+
|
812
|
+
#### `notifications.slack.on_failure`
|
813
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
814
|
+
|
815
|
+
**Expected format:** String.
|
816
|
+
|
817
|
+
#### `notifications.slack.on_start`
|
818
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
819
|
+
|
820
|
+
**Expected format:** String.
|
821
|
+
|
822
|
+
#### `notifications.slack.on_success`
|
823
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
824
|
+
|
825
|
+
**Expected format:** String.
|
826
|
+
|
827
|
+
#### `notifications.slack.rooms`
|
828
|
+
**Expected format:** List of strings; or a single string.
|
829
|
+
|
830
|
+
#### `notifications.slack.template`
|
831
|
+
Strings will be interpolated. Available variables: `%{repository_slug}`, `%{repository_name}`, `%{repository}`, `%{build_number}`, `%{branch}`, `%{commit}`, `%{author}`, `%{message}`, `%{duration}`, `%{compare_url}`, `%{build_url}`.
|
832
|
+
|
833
|
+
**Expected format:** List of strings; or a single string.
|
834
|
+
|
835
|
+
#### `notifications.sqwiggle`
|
836
|
+
**Expected format:** Key value mapping, or list of strings or encrypted strings, or boolean value.
|
837
|
+
|
838
|
+
#### `notifications.sqwiggle.disabled`
|
839
|
+
**Expected format:** Boolean value.
|
840
|
+
|
841
|
+
#### `notifications.sqwiggle.enabled`
|
842
|
+
**Expected format:** Boolean value.
|
843
|
+
|
844
|
+
#### `notifications.sqwiggle.on_failure`
|
845
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
846
|
+
|
847
|
+
**Expected format:** String.
|
848
|
+
|
849
|
+
#### `notifications.sqwiggle.on_start`
|
850
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
851
|
+
|
852
|
+
**Expected format:** String.
|
853
|
+
|
854
|
+
#### `notifications.sqwiggle.on_success`
|
855
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
856
|
+
|
857
|
+
**Expected format:** String.
|
858
|
+
|
859
|
+
#### `notifications.sqwiggle.rooms`
|
860
|
+
**Expected format:** List of strings; or a single string.
|
861
|
+
|
862
|
+
#### `notifications.sqwiggle.template`
|
863
|
+
Strings will be interpolated. Available variables: `%{repository_slug}`, `%{repository_name}`, `%{repository}`, `%{build_number}`, `%{branch}`, `%{commit}`, `%{author}`, `%{message}`, `%{duration}`, `%{compare_url}`, `%{build_url}`.
|
864
|
+
|
865
|
+
**Expected format:** List of strings; or a single string.
|
866
|
+
|
867
|
+
#### `notifications.webhook`
|
868
|
+
Alias for [`notifications.webhooks`](#notificationswebhooks).
|
869
|
+
|
870
|
+
#### `notifications.webhooks`
|
871
|
+
**Expected format:** Key value mapping, or list of strings or encrypted strings, or boolean value.
|
872
|
+
|
873
|
+
#### `notifications.webhooks.disabled`
|
874
|
+
**Expected format:** Boolean value.
|
875
|
+
|
876
|
+
#### `notifications.webhooks.enabled`
|
877
|
+
**Expected format:** Boolean value.
|
878
|
+
|
879
|
+
#### `notifications.webhooks.on_failure`
|
880
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
881
|
+
|
882
|
+
**Expected format:** String.
|
883
|
+
|
884
|
+
#### `notifications.webhooks.on_start`
|
885
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
886
|
+
|
887
|
+
**Expected format:** String.
|
888
|
+
|
889
|
+
#### `notifications.webhooks.on_success`
|
890
|
+
Value has to be `always`, `never` or `change`. Setting is case sensitive.
|
891
|
+
|
892
|
+
**Expected format:** String.
|
893
|
+
|
894
|
+
#### `notifications.webhooks.urls`
|
895
|
+
**Expected format:** List of strings; or a single string.
|
896
|
+
|
897
|
+
#### `npm_args`
|
898
|
+
**This setting is only relevant if [`language`](#language) is set to `node_js`.**
|
899
|
+
|
900
|
+
**Expected format:** String.
|
901
|
+
|
902
|
+
#### `os`
|
903
|
+
**Expected format:** List of strings; or a single string.
|
904
|
+
|
905
|
+
#### `os[]`
|
906
|
+
Value has to be `linux` (default) or `osx`; or one of the known aliases: `ubuntu` for `linux`, `mac` for `osx` or `macos` for `osx`. Setting is not case sensitive.
|
907
|
+
|
908
|
+
**Expected format:** String.
|
909
|
+
|
910
|
+
#### `osx_image`
|
911
|
+
**This setting is experimental and might be removed!**
|
912
|
+
|
913
|
+
`osx_image` version to use.
|
914
|
+
|
915
|
+
**Expected format:** String.
|
916
|
+
|
917
|
+
#### `otp`
|
918
|
+
Alias for [`otp_release`](#otp_release).
|
919
|
+
|
920
|
+
#### `otp_release`
|
921
|
+
**This setting is only relevant if [`language`](#language) is set to `erlang`.**
|
922
|
+
|
923
|
+
List of `otp_release` versions to use.
|
924
|
+
|
925
|
+
**Expected format:** List of strings; or a single string.
|
926
|
+
|
927
|
+
#### `perl`
|
928
|
+
**This setting is only relevant if [`language`](#language) is set to `perl`.**
|
929
|
+
|
930
|
+
List of `perl` versions to use.
|
931
|
+
|
932
|
+
**Expected format:** List of strings; or a single string.
|
933
|
+
|
934
|
+
#### `php`
|
935
|
+
**This setting is only relevant if [`language`](#language) is set to `php`.**
|
936
|
+
|
937
|
+
List of `php` versions to use.
|
938
|
+
|
939
|
+
**Expected format:** List of strings; or a single string.
|
940
|
+
|
941
|
+
#### `python`
|
942
|
+
**This setting is only relevant if [`language`](#language) is set to `python`.**
|
943
|
+
|
944
|
+
List of `python` versions to use.
|
945
|
+
|
946
|
+
**Expected format:** List of strings; or a single string.
|
947
|
+
|
948
|
+
#### `ruby`
|
949
|
+
**This setting is only relevant if [`language`](#language) is set to `ruby` (default) or `objective-c`.**
|
950
|
+
|
951
|
+
List of `ruby` versions to use.
|
952
|
+
|
953
|
+
**Expected format:** List of strings; or a single string.
|
954
|
+
|
955
|
+
#### `rvm`
|
956
|
+
Alias for [`ruby`](#ruby).
|
957
|
+
|
958
|
+
#### `script`
|
959
|
+
Commands that will be run on the VM.
|
960
|
+
|
961
|
+
**Expected format:** List of strings; or a single string.
|
962
|
+
|
963
|
+
#### `sdk_components`
|
964
|
+
**This setting is only relevant if [`language`](#language) is set to `android`.**
|
965
|
+
|
966
|
+
**Expected format:** List of strings; or a single string.
|
967
|
+
|
968
|
+
#### `services`
|
969
|
+
List of `services` versions to use.
|
970
|
+
|
971
|
+
**Expected format:** List of strings; or a single string.
|
972
|
+
|
973
|
+
#### `source_key`
|
974
|
+
**Expected format:** String or encrypted string.
|
975
|
+
|
976
|
+
#### `virtual_env`
|
977
|
+
Alias for [`virtualenv`](#virtualenv).
|
978
|
+
|
979
|
+
#### `virtualenv`
|
980
|
+
**This setting is only relevant if [`language`](#language) is set to `python`.**
|
981
|
+
|
982
|
+
**Expected format:** Key value mapping.
|
983
|
+
|
984
|
+
#### `virtualenv.system_site_packages`
|
985
|
+
**Expected format:** Boolean value.
|
986
|
+
|
987
|
+
#### `xcode_project`
|
988
|
+
**This setting is only relevant if [`language`](#language) is set to `objective-c`.**
|
989
|
+
|
990
|
+
**Expected format:** String.
|
991
|
+
|
992
|
+
#### `xcode_scheme`
|
993
|
+
**This setting is only relevant if [`language`](#language) is set to `objective-c`.**
|
994
|
+
|
995
|
+
List of `xcode_scheme` versions to use.
|
996
|
+
|
997
|
+
**Expected format:** List of strings; or a single string.
|
998
|
+
|
999
|
+
#### `xcode_sdk`
|
1000
|
+
**This setting is only relevant if [`language`](#language) is set to `objective-c`.**
|
1001
|
+
|
1002
|
+
List of `xcode_sdk` versions to use.
|
1003
|
+
|
1004
|
+
**Expected format:** List of strings; or a single string.
|
1005
|
+
|
1006
|
+
#### `xcode_workspace`
|
1007
|
+
**This setting is only relevant if [`language`](#language) is set to `objective-c`.**
|
1008
|
+
|
1009
|
+
**Expected format:** String.
|
1010
|
+
|
1011
|
+
#### `xctool_args`
|
1012
|
+
**This setting is only relevant if [`language`](#language) is set to `objective-c`.**
|
1013
|
+
|
1014
|
+
**Expected format:** String.
|
1015
|
+
|
1016
|
+
## Generating the Specification
|
1017
|
+
|
1018
|
+
This file is generated. You currently update it by running `play/spec.rb`.
|