Testing Conditions

Conditions can be used to filter out, and reject builds, stages, and jobs by specifying conditions in your build configuration (your .travis.yml file). See Conditional Builds, Stages, and Jobs and Conditions for details.

The gem travis-conditions comes with an executable that can be used to test conditions.

Installation #

$ gem install travis-conditions

Usage #

$ travis-conditions <command>

The two commands available are parse and eval.

parse #

Check the syntax of a condition by inspecting the resulting abstract syntax tree.

$ travis-conditions parse "branch = foo"
[:eq, [:var, :branch], [:val, "foo"]]

eval #

Check conditions against a given data hash.

$ travis-conditions eval "branch = foo" --data '{"branch": "foo"}'
true

$ echo '{"branch": "foo"}' | travis-conditions eval "branch = foo"
true

The given JSON data can include known attributes (such as branch, tag, repo, see this page for a complete list of attributes) and an “env” key that can either hold a hash, or an array of strings:

{"env": {"foo": "bar"}}
{"env": ["foo=bar"]}

For example:

$ travis-conditions eval "env(foo) = bar" --data '{"env": {"foo": "bar"}}'
true
$ travis-conditions eval "env(foo) = bar" --data '{"env": ["foo=bar"]}'
true