Building a Julia Project
What This Guide Covers
Travis CI support for Julia is contributed by the community and may be removed or altered at any time. If you run into any problems, please report them in the Travis CI issue tracker and cc @tkelman @ninjin @staticfloat @simonbyrne.
Choosing Julia versions to test against
Julia workers on Travis CI download and install a binary of Julia.
You can select the most recent release version, the latest nightly build
(downloaded from https://status.julialang.org), or a specific version number
(downloaded from https://s3.amazonaws.com/julialang). To select one or more
versions, use the
julia: key in your
.travis.yml file, for example:
language: julia julia: - nightly - 0.5 - 0.5.2
If the version number contains one
., then the latest release for that minor version
is downloaded. The oldest versions for which binaries are available is 0.3.1 for Linux,
or 0.2.0 for OS X.
Default Julia Version
If you leave the
julia: key out of your
.travis.yml, Travis CI will use
the most recent release.
Default Test Script
If your repository follows the structure of a Julia package created by
PkgDev.generate("$name", "$license"), then the following default script will be run:
julia -e 'Pkg.clone(pwd())' julia -e 'Pkg.build("$name")' if [ -f test/runtests.jl ]; then julia --check-bounds=yes -e 'Pkg.test("$name", coverage=true)' fi
The package name
$name is determined based on the repository name, removing
.jl if present. A repository is treated as a Julia package when
it contains a file at
src/$name.jl. If your repository does not follow this
structure, then the default script will be empty.
If your Julia package has a
deps/build.jl file, then
will run that file to install any dependencies of the package. If you need
to manually install any dependencies that are not handled by
it is possible to specify a custom dependency installation command as described
in the general build configuration guide.
For Julia projects,
julia can be given as arrays
to construct a build matrix.
The version of Julia a job is using is available as: