Travis Build expose une API que les travailleurs Travis et l'utilisation des cartes de travail pour générer un script bash qui est ensuite copié dans l'environnement d'exécution de l'emploi et exécuté, avec la sortie résultant en difficulté à Travis.
Cette base de code a subi plusieurs itérations de développement et a été à l'origine extraite de l'héritage Travis Worker, avant de prendre sa forme actuelle.
Courir
bundle exec rake spec
Vous pouvez définir Travis-Build en tant que plugin pour le client de la ligne de commande:
git clone https://github.com/travis-ci/travis-build
cd travis-build
mkdir -p ~ /.travis
ln -s $PWD ~ /.travis/travis-build
gem install bundler
bundle install --gemfile ~ /.travis/travis-build/Gemfile
bundler binstubs travis
Vous pourrez désormais exécuter travis compile
, qui produit le script bash qui exécute le travail spécifié, sauf que les variables d'environnement sécurisées ne sont pas définies, et que l'expansion de la matrice de construction n'est pas prise en compte, par exemple:
~ /.travis/travis-build/bin/travis compile
Le script bash généré par la commande compile contient des commandes qui apportent des modifications au système sur lequel il est exécuté (par exemple, édition /etc/resolv.conf
, logiciel d'installation). Certains nécessitent des privilèges sudo
et ils ne sont pas facilement annulés.
Il est fortement recommandé de l'exécuter dans un conteneur ou un autre environnement virtualisé.
La commande peut être invoquée de 3 manières:
Sans argument, il produit et imprime un script bash à partir des actions dans le .travis.yml
local sans considérer les valeurs env
et matrix
( travis-build
n'est pas en mesure d'élargir correctement ces clés).
~ /.travis/travis-build/bin/travis compile
Avec un seul entier, il produit le script pour la construction donnée (ou le premier travail de cette matrice de construction).
~ /.travis/travis-build/bin/travis compile 8
Avec un argument de la forme MN
, il produit le script bash pour le travail MN
.
~ /.travis/travis-build/bin/travis compile 351.2
Le script généré peut être utilisé dans un conteneur ou un environnement virtualisé qui imite étroitement l'environnement de construction de Travis CI pour vous aider à déboguer les échecs de construction. Les instructions pour gérer un tel conteneur sont disponibles dans les documents Travis CI.
En plus du plugin Travis CLI, vous pouvez également exécuter le script CLI autonome:
bundle exec script/compile < payload.json > build.sh
Si vous souhaitez exécuter Travis-Build localement sur votre machine (par exemple pour interagir avec le travailleur), vous pouvez également l'exécuter en tant que conteneur Docker avec Docker-Compose:
Tout d'abord, construisez l'image:
docker-compose build web
Deuxièmement, exécutez l'image:
docker-compose run web
Vous souhaiterez peut-être exécuter une configuration différente pour le développement local. Ce qui suit montre l'exécution travis-build
dans l'environnement development
, transmettant le port 4000 de l'image Docker au port 4000 de l'hôte:
docker-compose run -e RACK_ENV=development -p 4000:4000 web
pour le construire et l'exécuter. Cela créera un conteneur avec le contenu du référentiel travis-build
dans le répertoire /usr/src/app
et vous démarrer dans ce répertoire. À partir de là, vous pouvez exécuter les commandes répertoriées dans la section Utiliser comme addon pour Travis CLI pour rendre la commande compilée à la disposition de Travis CLI dans le conteneur.
Voir le fichier de licence.
Copyright (C) 2011-2016 Équipe de développement de Travis CI.