Cxx.jl icon indicating copy to clipboard operation
Cxx.jl copied to clipboard

Instructions for using on CI

Open iamed2 opened this issue 9 years ago • 8 comments
trafficstars

It would be nice if there were some good instructions on how to handle CI testing of packages that depend on Cxx.jl, particularly on Travis macOS.

I tried a simple dependency and the build stalled with Cxx.jl building clang. My current status is trying to mimic the Cxx.jl .travis.yml and seeing if one of the configurations in the matrix will work (maybe the Travis cache hacks?).

Alternatively Cxx dependencies as binaries? I.e., the clang that a Julia binary install will depend on.

Maybe I'm missing an easy way?

iamed2 avatar Nov 17 '16 22:11 iamed2

Cxx on Travis CI is very tricky. The .travis.yml file in this repo doesn't really work (takes too long to build Clang). I'm gonna look into putting up binaries built against the generic julia binaries, which should at least help the CI use case.

Keno avatar Nov 17 '16 22:11 Keno

That would definitely solve my problem.

It feels kind of awkward to release a package that can't be tested on CI because of a dependency on another package in METADATA, which is why I've been holding off on AWSCxx.jl (despite it being cool and tested).

iamed2 avatar Nov 17 '16 22:11 iamed2

@tkelman Do you think you could run Pkg.build("Cxx") from a generic build on the linux/mac buildbots, and upload the resulting ~/.julia/v0.5/Cxx/deps somewhere for me to repackage for CI?

Keno avatar Nov 18 '16 23:11 Keno

@tkelman Having the binaries is not just important for Travis CI but generally for all windows users. This would also close the #293 and #230. The build process of Julia with all the prerequisites and Clang on windows is really tricky - beyond the knowledge of most windows users.

Petr-Hlavenka avatar Nov 21 '16 07:11 Petr-Hlavenka

Whoops, sorry I missed this over the weekend. So we can give it a shot, but the buildbots really aren't set up to do this in an automated way for packages, and I'd hate to have to do this manually every time you need to rebuild or patch or update something. I'd need to look up the github releases or bintray api's to upload the results (assuming it builds okay) somewhere convenient. And there's nothing particularly special about the Mac or Windows buildbots as compared to any person's individual machine or VM you could get off Vagrant etc. The Linux buildbots do have a fair amount of preparation done on them, but it should be mostly equivalent to a docker image such as my https://github.com/tkelman/c6g6.

tkelman avatar Nov 23 '16 08:11 tkelman

Hi, Is there any update of the possible docker image?

TeroFrondelius avatar Feb 13 '17 08:02 TeroFrondelius

Looking into it.

Keno avatar Feb 13 '17 20:02 Keno

master now has a .travis.yml that should be usable as a template. It's not pretty but it does work. At some point there'll be a longer term solution, but this should do for now.

Keno avatar Feb 21 '17 04:02 Keno