https://github.com/ocsigen/docker-buildbot
https://github.com/ocsigen/docker-buildbot
Last synced: 13 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/ocsigen/docker-buildbot
- Owner: ocsigen
- Created: 2014-07-17T19:27:04.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2017-04-14T11:54:31.000Z (about 8 years ago)
- Last Synced: 2024-03-26T00:11:37.611Z (over 1 year ago)
- Language: Shell
- Size: 38.1 KB
- Stars: 2
- Watchers: 20
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
This project contains configuration files for the slaves of the
[Ocsigen's Jenkins](https://buildbot.ocsigen.org/).## Les jobs de Jenkins
Les jobs se contentent d'exécuter le script '/builds/bin/build' (copié
depuis le fichier 'bin/build' de ce projet). Ce script crée un
conteneur 'docker' (basé sur une debian stable) et y exécute le script
'docker/bin/build.sh'.Le conteneur contient dans le répertoire '/usr/src/workspace' les
sources du projet à compiler ; le script 'build.sh' exécute
principalement le script '.jenkins.sh' qui se trouve à la racine du
projet.Le job peut être paramétré en ajoutant à la racine du projet un
fichier '.env.sh' pouvant définir entre autres :- OPAMSWITCH : le switch opam à utiliser
- JENKINS_BUILD_DOC : le nom du projet (ou vide si l'on ne veux pas
compiler la documentation)- JENKINS_COMMIT_DOC : si non-vide, 'commit/push' la doc dans le
dépôt 'ocsigen.org-data'.- JENKINS_KEEP_CONTAINER : si non-vide, n'efface pas le 'conteneur docker'
à la fin de la compilation.## Conteneur
Le conteneur utilisé pour 'builder' les 'jobs' de Jenkins s'appelle
'ocsigen:debian_stable'. Les données nécessaire à sa création sont
regroupées dans le répertoire 'docker' de ce dépôt git. Le conteneur
est construit automatiquement à chaque 'commit' dans le dépôt github
par les jobs Jenkins
[Docker-buildbot-s1](https://ci.inria.fr/ocsigen/job/Docker-buildbot-s1)
et
[Docker-buildbot-s2](https://ci.inria.fr/ocsigen/job/Docker-buildbot-s2).
Ces jobs exécutent le script 'bin/update_docker.jenkins' de ce dépôt.## Cache
Les répertoires '/builds/cache/git' et '/builds/cache/opam-repository'
des machines esclaces contiennent respectivement un mirroir git de
tous les projets 'ocsigen' et un mirroir du 'opam-repository'
principal.Ils sont mis-à-jour par le script 'bin/update_cache.jenkins' qui est
exécuté au moins une fois par jour par les jobs
[Cache-updater-s1](https://ci.inria.fr/ocsigen/job/Cache-updater-s1)
et
[Cache-updater-s2](https://ci.inria.fr/ocsigen/job/Cache-updater-s2).## Petit hack sans dout inutile.
Pour ne pas qu'un job Jenkins "classique" s'exécute en même tant que
la mise-à-jour du Docker, les jovs 'Cache-updater' et 'Docker-builbot'
se synchronise pour occuper les deux 'executors' de l'esclave...## How to:
# Add a new compiler
Add the new compiler in `docker/cache/opam-repository-init/compilers` by
copying a definition in `opam-repository`.Add a new line in `docker/Dockerfile` like that:
```
RUN opam switch install 4.02 --alias-of 4.02.3
```Please add versions without the patch number, it makes it easier to change
when a patch is out.