https://github.com/nekketsuuu/ocaml_travis_ci
Travis CI benchmarks for OCaml
https://github.com/nekketsuuu/ocaml_travis_ci
benchmark ocaml travis-ci
Last synced: 3 months ago
JSON representation
Travis CI benchmarks for OCaml
- Host: GitHub
- URL: https://github.com/nekketsuuu/ocaml_travis_ci
- Owner: nekketsuuu
- License: other
- Created: 2018-02-12T14:03:00.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-02-16T10:43:27.000Z (over 7 years ago)
- Last Synced: 2023-08-29T18:39:10.544Z (almost 2 years ago)
- Topics: benchmark, ocaml, travis-ci
- Language: OCaml
- Homepage:
- Size: 20.5 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Note: The newest README is on the [`master`][master] branch.
## About
This repository shows the result of my *Travis CI benchmarks for OCaml*.
A Travis CI job for a OCaml project sometimes takes a lot of time. In some projects, this is because Travis runs `make world` of the OCaml compiler for each single job. Therefore there are needs for a faster way of CI.
In this repository, the [`master`][master] branch contains a very simple "Hello, world!" project. Other branches have their own `.travis.yml` to use CI. The benchmark for each branch is written below. The details of the result are [here](https://travis-ci.org/nekketsuuu/ocaml_travis_ci/branches).
## Benchmarks
Note: Each branch was executed only five times to measure the time. Therefore, **the error range may be large.** Also, be aware that each branch runs different commands. For example, the Docker image `ocaml/opam` uses its local opam-repository, not the online one.
| Branch | Time for `linux` (min) | Time for `osx` (min) | Memo |
|:-------------------------------------------------------------------------|-------------------------:|---------------------:|:------------------------------------------------------------------|
| [OPAM 1 with cache][opam] | 8--10 (ubuntu) | 8--14 | uses `.travis-opam.sh` on [ocaml-ci-scripts]. |
| [OPAM 1 without cache][opam-without-cache] | 7--9 (ubuntu) | 8--15 | uses `.travis-opam.sh` on [ocaml-ci-scripts]. |
| [Docker (linux only)][docker] | 3--4 (alpine & ubuntu) | (not available) | uses `.travis-docker.sh` on [ocaml-ci-scripts]. |
| [Docker for linux, OPAM 1 for osx][docker-and-osx] | 3--4 (alpine & ubuntu) | 14--17 | uses `.travis-docker.sh` for linux and `.travis-opam.sh` for osx. |
| [Simplified Docker image][bobbypriambodo] | 1.5--4 (alpine & ubuntu) | (not available) | is based on [bobbypriambodo's method][bobbypriambodo-post]. |
| [Simplified Docker image on `language: general`][bobbypriambodo-general] | 2--3 (alpine & ubuntu) | (not available) | is based on [bobbypriambodo's method][bobbypriambodo-post]. |
| [Simplified Docker image on `language: bash`][bobbypriambodo-bash] | 1--2 (alpine & ubuntu) | (not available) | is based on [bobbypriambodo's method][bobbypriambodo-post]. |
| [Downloaded OPAM 2, without cache][zozozo] | 6--14 (ubuntu) | (not available) | is based on [zozozo's method][zozozo-post]. |## See Also
* https://github.com/ocaml/ocaml-ci-scripts
* ["What are the best practices for setting up continuous integration for OCaml projects?"](https://discuss.ocaml.org/t/what-are-the-best-practices-for-setting-up-continuous-integration-for-ocaml-projects/1499) -- discuss.ocaml.org (posted on Jan 29, 2018)[ocaml-ci-scripts]: https://github.com/ocaml/ocaml-ci-scripts
[master]: https://github.com/nekketsuuu/ocaml_travis_ci/tree/master
[opam]: https://github.com/nekketsuuu/ocaml_travis_ci/tree/use-travis-opam-sh
[opam-without-cache]: https://github.com/nekketsuuu/ocaml_travis_ci/tree/use-travis-opam-sh-without-cache
[docker]: https://github.com/nekketsuuu/ocaml_travis_ci/tree/use-travis-docker-sh
[docker-and-osx]: https://github.com/nekketsuuu/ocaml_travis_ci/tree/use-travis-docker-sh-plus-osx
[bobbypriambodo]: https://github.com/nekketsuuu/ocaml_travis_ci/tree/bobbypriambodo
[bobbypriambodo-general]: https://github.com/nekketsuuu/ocaml_travis_ci/tree/bobbypriambodo-language-general
[bobbypriambodo-bash]: https://github.com/nekketsuuu/ocaml_travis_ci/tree/bobbypriambodo-language-bash
[bobbypriambodo-post]: https://discuss.ocaml.org/t/what-are-the-best-practices-for-setting-up-continuous-integration-for-ocaml-projects/1499/3
[zozozo]: https://github.com/nekketsuuu/ocaml_travis_ci/tree/zozozo
[zozozo-post]: https://discuss.ocaml.org/t/what-are-the-best-practices-for-setting-up-continuous-integration-for-ocaml-projects/1499/6