Je viens de rejoindre un projet et je suis nouveau sur Travis-ci. Je préférerais ne pas avoir à appliquer chaque petit changement à .travis.yml et à chaque petit changement apporté à la source afin d'exécuter la compilation. Avec Jenkins, vous pouvez télécharger des jenkins et les exécuter localement. Travis offre-t-il quelque chose comme ça?
Remarque: j'ai vu et téléchargé le fichier travis-ci, mais tout ce qu'il semble faire, c'est d'appeler leur API, qui se connecte ensuite à mon dépôt github. Par conséquent, si je n'effectue pas de Push, le redémarrage n'aura pas d'importance la dernière construction.
Ce processus vous permet de reproduire complètement tout travail de construction Travis sur votre ordinateur. En outre, vous pouvez interrompre le processus à tout moment et déboguer. Voici un exemple où je reproduis parfaitement les résultats de job # 191.1 sur php-school/cli-men .
Référence: https://docs.travis-ci.com/user/common-build-problems/
Créez votre propre ID de build temporaire
BUILDID="build-$RANDOM"
Voir le journal de construction , ouvrez le bouton Afficher plus pour INFORMATION DU TRAVAILLEUR et recherchez la ligne INSTANCE, collez-le ici et exécutez-le (remplacez la balise après le signe deux-points avec la plus récente disponible) :
INSTANCE="travisci/ci-garnet:packer-1512502276-986baf0"
Exécuter le serveur sans tête
docker run --name $BUILDID -dit $INSTANCE /sbin/init
Exécuter le client attaché
docker exec -it $BUILDID bash -l
Vous êtes maintenant dans votre environnement Travis. Exécutez su - travis
pour commencer.
Cette étape est bien définie mais plus fastidieuse et manuelle. Vous trouverez toutes les commandes exécutées par Travis dans l'environnement. Pour ce faire, recherchez tout ce qui se trouve dans la colonne de droite avec une balise comme 0.03s.
Sur le côté gauche, vous verrez les commandes réelles. Exécutez ces commandes dans l'ordre.
Le moment est venu d’exécuter la commande history
. Vous pouvez redémarrer le processus et rejouer ces commandes pour exécuter le même test sur une base de code mise à jour.
ssh-keygen -t rsa -b 4096 -C "YOUR EMAIL REGISTERED IN GITHUB"
alors cat ~/.ssh/id_rsa.pub
et cliquez ici pour ajouter une clégit pull
depuis le menu fixe pour charger les validations depuis votre boîte de dev avant de les envoyer à GitHub..travis.yml
fonctionnel.Travis-ci offre une nouvelle infrastructure basée sur les conteneurs qui utilise docker. Cela peut être très utile si vous essayez de dépanner une construction travis-ci en la reproduisant localement. Ceci est tiré de CI Travis documentation .
Si vous rencontrez des difficultés pour localiser le problème exact dans une version, il est souvent utile de l'exécuter localement. Pour ce faire, vous devez utiliser notre infrastructure basée sur les conteneurs (c.-à-d. Avoir Sudo: false
dans votre .travis.yml
) et savoir quelle image Docker vous utilisez sur Travis CI.
Sélectionnez une image parmi Docker Hub . Si vous n'utilisez pas d'image spécifique à une langue, sélectionnez ci-Ruby
. Ouvrez un terminal et démarrez une session Docker interactive à l'aide de l'URL de l'image:
docker run -it travisci/ubuntu-Ruby:18.04 /bin/bash
Basculez vers l'utilisateur travis
:
su - travis
/
de l'image.UPDATE: J'ai maintenant une réponse clé en main complète, tout-en-un, voir https://stackoverflow.com/a/49019950/300224 . Cela n'a pris que 3 ans pour comprendre!
Selon la documentation Travis: https://github.com/travis-ci/travis-ci , il existe un ensemble de projets qui concourent à la fourniture du service Web Travis CI que nous connaissons et aimons. Le sous-ensemble de projets suivant semble autoriser les fonctionnalités locales make test
à l'aide de .travis.yml
dans votre projet:
travis-build crée le script de construction pour chaque travail. Il prend la configuration à partir du fichier .travis.yml
et crée un script bash
qui est ensuite exécuté dans l'environnement de construction par travis-worker.
travis-cookbooks contient les livres de recettes Chef utilisés pour approvisionner les environnements de construction.
travis-worker est responsable de l’exécution des scripts de construction dans un environnement propre. Il diffuse la sortie du journal dans travis-logs et envoie les mises à jour d'état (construction de démarrage/finition) à travis-hub.
(Les autres sous-projets sont responsables de la communication avec GitHub, de leur interface Web, de la messagerie électronique et de leur API.)
Similaire à Scott McLeod, mais cela génère également un script bash pour exécuter les étapes à partir du fichier .travis.yml.
# choose the image according to the language chosen in .travis.yml
$ docker run -it -u travis quay.io/travisci/travis-jvm /bin/bash
# now that you are in the docker image, switch to the travis user
Sudo - travis
# Install a recent Ruby (default is 1.9.3)
rvm install 2.3.0
rvm use 2.3.0
# Install travis-build to generate a .sh out of .travis.yml
cd builds
git clone https://github.com/travis-ci/travis-build.git
cd travis-build
gem install travis
# to create ~/.travis
travis version
ln -s `pwd` ~/.travis/travis-build
bundle install
# Create project dir, assuming your project is `AUTHOR/PROJECT` on GitHub
cd ~/builds
mkdir AUTHOR
cd AUTHOR
git clone https://github.com/AUTHOR/PROJECT.git
cd PROJECT
# change to the branch or commit you want to investigate
travis compile > ci.sh
# You most likely will need to edit ci.sh as it ignores matrix and env
bash ci.sh
Utilisez wwtd (que travis ferait-il) Ruby gem pour exécuter des tests sur votre machine locale à peu près comme ils le seraient sur travis.
Il va recréer la matrice de construction et exécuter chaque configuration, ce qui est un excellent moyen de vérifier la configuration avant de lancer.
gem i wwtd
wwtd
Je ne sais pas quelle était la raison initiale pour laquelle vous avez utilisé Travis localement, si vous venez voulez jouer avec, arrêtez de lire ici car cela n'a aucune importance pour vous.
Si vous avez déjà une expérience avec Travis hébergé et que vous souhaitez obtenir la même expérience dans votre propre centre de données, lisez la suite.
Depuis Dec 2014 , Travis CI propose une version d'entreprise sur site.
http://blog.travis-ci.com/2014-12-19-introducing-travis-ci-enterprise/
La tarification fait également partie de l'article:
La licence se fait par siège, chaque licence comprenant 20 utilisateurs. Le prix commence à 6 000 USD par licence, ce qui inclut 20 utilisateurs et 5 versions simultanées. Il existe une option premium avec builds illimités pour 8 500 $.
Vous pouvez essayer Trevor , qui utilise Docker pour exécuter votre build Travis.
De sa description:
J'ai souvent besoin d'exécuter des tests pour plusieurs versions de Node.js. Mais je ne veux pas changer de version manuellement en utilisant n/nv ou Transférer le code dans Travis CI uniquement pour exécuter les tests.
C'est pourquoi j'ai créé Trevor. Il lit .travis.yml et exécute des tests dans toutes les versions que vous avez demandées, comme Travis CI. Maintenant, vous pouvez tester avant Push et garder votre historique git propre.
Il est possible de passer de SSH à l’environnement Travis CI via un hôte de rebond. La fonctionnalité n'est pas intégrée à Travis CI, mais vous pouvez y parvenir en procédant comme suit.
travis
et assurez-vous que vous pouvez le faire en SSH.Placez ces lignes dans la section script:
de votre .travis.yml
(par exemple, à la fin).
- echo travis:$sshpassword | Sudo chpasswd
- Sudo sed -i 's/ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/' /etc/ssh/sshd_config
- Sudo service ssh restart
- Sudo apt-get install sshpass
- sshpass -p $sshpassword ssh -R 9999:localhost:22 -o StrictHostKeyChecking=no travis@$bouncehostip
Où $bouncehostip
est l'adresse IP/l'hôte de votre hôte de rebond et $sshpassword
est votre mot de passe SSH défini. Ces variables peuvent être ajoutées en tant que variables cryptées .
Poussez les changements. Vous devriez pouvoir établir une connexion SSH avec votre hôte de rebond.
Source: Shell dans l'environnement de construction Travis CI .
Voici l'exemple complet:
# use the new container infrastructure
Sudo: required
dist: trusty
language: python
python: "2.7"
script:
- echo travis:$sshpassword | Sudo chpasswd
- Sudo sed -i 's/ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/' /etc/ssh/sshd_config
- Sudo service ssh restart
- Sudo apt-get install sshpass
- sshpass -p $sshpassword ssh -R 9999:localhost:22 -o StrictHostKeyChecking=no travisci@$bouncehostip
Voir: c-mart/travis-Shell
sur GitHub .
Voir aussi: Comment reproduire un environnement de construction travis-ci pour le débogage