slug: julia-travis datepublished: 2018-09-13T22:00:07 dateupdated: 2018-09-18T01:50:46 tags: JuliaLang excerpt: "Travis-CI provides free build check for public project, it's perfect for individual to put a little nice build badge on README.md inside the repository." –-

Cover


Travis-CI provides free build check for public project, it's perfect for individual to put a little nice build badge on README.md inside the repository. It also has a paid plan for larger collaboration that needs to run build check for every pull requests and different branches where they will run several builds in parallel. (Also this is because larger project such as Julialang itself, can also take more than 4 hours to even build once).

But smaller, personal projects usually take less than an hour to build thus takes no cost. build-log

A very basic Julia package should have the following structure:

. ├── LICENSE ├── Manifest.toml ├── Project.toml ├── README.md ├── REQUIRE ├── src │ └── scryfall.jl └── test └── runtests.jl

Source code in src directory should have something structure as:

module <pkg_name> using <dependent_pkg> export foo function foo #do something end end #end of module

Where the Manifest.toml and Project.toml should be auto generated by

(v1.0) Pkg> generate <pakcage_name>

Afterwards, cd into the directory, and then issue

(v1.0) Pkg> activate .

to activate the package. After this, anything you add as a dependent with add <pkg_name> will be automatically updated into Project.toml.


Once you'be done making the package, it's time to deploy Travis-CI, for the purpose julia, you will need a .travis.toml file in the base directory of github repo that looks like this:

language: julia os: - linux julia: - nightly - 1.0

Then, in order for Travis-CI to catch tests, you will want a test folder with a runtest.jl inside, where Travis-CI will examine the results after building your packages. (Don't forget to include Test as a julia dependent in Project.toml). In the runtests.jl , you will want to issue using <your_package> and using Test then use @test macro to test some true-false statement, if all goes well, you Travis-CI will spit out a success result.