caml-list - the Caml user's mailing list
 help / Atom feed
* [Caml-list] Opam packages and CI
@ 2019-04-09 18:14 Helmut Brandl
  2019-04-09 18:49 ` Simon Cruanes
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Helmut Brandl @ 2019-04-09 18:14 UTC (permalink / raw)
  To: caml users

Hello list,

I would like to run some continuous integration like travis ci on my opam package. Unfortunately ocaml is not supported directly by travis. But I have found the GitHub repository ocaml/ocaml-ci-scripts and some instructions on how to use it.

My questions:

- Is this a stable form on how to use travis with ocaml?

- Are there experiences and are they good?

- Why has this solution been chosen instead of integrating ocaml support directly into travis?

- Isn’t the solution an overkill, because it requires a complete opam and ocaml installation on the travis machines in order to test an opam package? Isn’t there the risk that travis might block this form of usage in the future?

- Is there a better method to use CI with ocaml?

Thanks
Helmut

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Caml-list] Opam packages and CI
  2019-04-09 18:14 [Caml-list] Opam packages and CI Helmut Brandl
@ 2019-04-09 18:49 ` Simon Cruanes
  2019-04-09 18:54   ` Daniil Baturin
  2019-04-09 21:36 ` Anil Madhavapeddy
  2019-04-10 14:20 ` Louis Roché
  2 siblings, 1 reply; 6+ messages in thread
From: Simon Cruanes @ 2019-04-09 18:49 UTC (permalink / raw)
  To: Helmut Brandl; +Cc: caml users

[-- Attachment #1: Type: text/plain, Size: 470 bytes --]

I've had good experiences with travis recently, using the docker script
(an example here:
https://github.com/c-cube/iter/blob/master/.travis.yml).

if your package is opam 2-friendly it's just a matter of a local pin
and a few switches. there are other options (variables, really) to
install extra deps or deal with optional deps.

It's not particularly overkill since it just starts with a docker image
with pre-installed opam switches.

-- 
Simon Cruanes

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Caml-list] Opam packages and CI
  2019-04-09 18:49 ` Simon Cruanes
@ 2019-04-09 18:54   ` Daniil Baturin
  0 siblings, 0 replies; 6+ messages in thread
From: Daniil Baturin @ 2019-04-09 18:54 UTC (permalink / raw)
  To: caml-list

Apparently all it takes to add a "proper" Travis integration is three
people and some Ruby code.

https://docs.travis-ci.com/user/languages/community-supported-languages/#adding-a-new-language
https://github.com/travis-ci/travis-build/blob/master/spec/build/script/haskell_spec.rb

I don't have a Ruby experience myself though so I can hardly volunteer.

On 4/10/19 1:49 AM, Simon Cruanes wrote:
> I've had good experiences with travis recently, using the docker script > (an example here: >
https://github.com/c-cube/iter/blob/master/.travis.yml). > > if your
package is opam 2-friendly it's just a matter of a local pin > and a few
switches. there are other options (variables, really) to > install extra
deps or deal with optional deps. > > It's not particularly overkill
since it just starts with a docker image > with pre-installed opam
switches. >


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Caml-list] Opam packages and CI
  2019-04-09 18:14 [Caml-list] Opam packages and CI Helmut Brandl
  2019-04-09 18:49 ` Simon Cruanes
@ 2019-04-09 21:36 ` Anil Madhavapeddy
  2019-04-10 14:57   ` Helmut Brandl
  2019-04-10 14:20 ` Louis Roché
  2 siblings, 1 reply; 6+ messages in thread
From: Anil Madhavapeddy @ 2019-04-09 21:36 UTC (permalink / raw)
  To: Helmut Brandl; +Cc: caml users

[-- Attachment #1: Type: text/plain, Size: 1586 bytes --]

On 9 Apr 2019, at 19:14, Helmut Brandl <helmut.brandl@gmx.net> wrote:
> 
> Hello list,
> 
> I would like to run some continuous integration like travis ci on my opam package. Unfortunately ocaml is not supported directly by travis. But I have found the GitHub repository ocaml/ocaml-ci-scripts and some instructions on how to use it.

Dear Helmut,

> My questions:
> 
> - Is this a stable form on how to use travis with ocaml?
> 
> - Are there experiences and are they good?

Last I checked, there were over 400 repositories on GitHub using ocaml-ci-scripts.  It's pretty stable.

> - Why has this solution been chosen instead of integrating ocaml support directly into travis?

Why do you need direct integration with Travis?  The use of the Docker support has made the necessity for that essentially obsolete.

See, for example:
https://github.com/mirage/ocaml-cohttp/blob/master/.travis.yml <https://github.com/mirage/ocaml-cohttp/blob/master/.travis.yml>

in cohttp, which uses Travis and Docker to test the libraries on a variety of Linux distributions.

> - Isn’t the solution an overkill, because it requires a complete opam and ocaml installation on the travis machines in order to test an opam package? Isn’t there the risk that travis might block this form of usage in the future?
> 
> - Is there a better method to use CI with ocaml?

This solution is pretty good for most people. I'd encourage you to give it a try, and to contribute back any improvements or feature requests you might have after trying it out for a while.

regards,
Anil

[-- Attachment #2: Type: text/html, Size: 2754 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Caml-list] Opam packages and CI
  2019-04-09 18:14 [Caml-list] Opam packages and CI Helmut Brandl
  2019-04-09 18:49 ` Simon Cruanes
  2019-04-09 21:36 ` Anil Madhavapeddy
@ 2019-04-10 14:20 ` Louis Roché
  2 siblings, 0 replies; 6+ messages in thread
From: Louis Roché @ 2019-04-10 14:20 UTC (permalink / raw)
  To: caml-list

[-- Attachment #1: Type: text/plain, Size: 191 bytes --]

> - Is this a stable form on how to use travis with ocaml?

There is auto-ci that can be used to generate travis configuration relying on ocaml-ci-scripts.

https://github.com/yomimono/autoci

[-- Attachment #2: Type: text/html, Size: 482 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Caml-list] Opam packages and CI
  2019-04-09 21:36 ` Anil Madhavapeddy
@ 2019-04-10 14:57   ` Helmut Brandl
  0 siblings, 0 replies; 6+ messages in thread
From: Helmut Brandl @ 2019-04-10 14:57 UTC (permalink / raw)
  To: Anil Madhavapeddy; +Cc: caml users

[-- Attachment #1: Type: text/plain, Size: 2449 bytes --]

Thanks for all the hints. Some experiences:

I have used the .travis.yaml file from the repo ocaml/ocaml-ci-scripts, reduced the build matrix to a minimum (only 4.07) and it worked out of the box. However to took approx 8 min for linux and 12 min for osx.

Therefore I have changed in the travis file ‘.travis-opam.sh’ to ‘.travis-docker.sh’ and added ’services: -docker’, because docker has been recommended by many.

Now the build failed after some seconds. Maybe there is more to do than this trivial change to switch to docker.

Is there some documentation on how to use docker? Is it worth the effort i.e. will it run faster or has it more features?

Regards
Helmut


> On Apr 9, 2019, at 16:36, Anil Madhavapeddy <anil@recoil.org> wrote:
> 
> On 9 Apr 2019, at 19:14, Helmut Brandl <helmut.brandl@gmx.net <mailto:helmut.brandl@gmx.net>> wrote:
>> 
>> Hello list,
>> 
>> I would like to run some continuous integration like travis ci on my opam package. Unfortunately ocaml is not supported directly by travis. But I have found the GitHub repository ocaml/ocaml-ci-scripts and some instructions on how to use it.
> 
> Dear Helmut,
> 
>> My questions:
>> 
>> - Is this a stable form on how to use travis with ocaml?
>> 
>> - Are there experiences and are they good?
> 
> Last I checked, there were over 400 repositories on GitHub using ocaml-ci-scripts.  It's pretty stable.
> 
>> - Why has this solution been chosen instead of integrating ocaml support directly into travis?
> 
> Why do you need direct integration with Travis?  The use of the Docker support has made the necessity for that essentially obsolete.
> 
> See, for example:
> https://github.com/mirage/ocaml-cohttp/blob/master/.travis.yml <https://github.com/mirage/ocaml-cohttp/blob/master/.travis.yml>
> 
> in cohttp, which uses Travis and Docker to test the libraries on a variety of Linux distributions.
> 
>> - Isn’t the solution an overkill, because it requires a complete opam and ocaml installation on the travis machines in order to test an opam package? Isn’t there the risk that travis might block this form of usage in the future?
>> 
>> - Is there a better method to use CI with ocaml?
> 
> This solution is pretty good for most people. I'd encourage you to give it a try, and to contribute back any improvements or feature requests you might have after trying it out for a while.
> 
> regards,
> Anil


[-- Attachment #2: Type: text/html, Size: 4316 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, back to index

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-09 18:14 [Caml-list] Opam packages and CI Helmut Brandl
2019-04-09 18:49 ` Simon Cruanes
2019-04-09 18:54   ` Daniil Baturin
2019-04-09 21:36 ` Anil Madhavapeddy
2019-04-10 14:57   ` Helmut Brandl
2019-04-10 14:20 ` Louis Roché

caml-list - the Caml user's mailing list

Archives are clonable: git clone --mirror https://inbox.ocaml.org/caml-list

AGPL code for this site: git clone https://public-inbox.org/ public-inbox