La configuration de l’environnement pour exécuter les tests sur un CI/CD peut nécessiter quelques allers-retours entre votre machine hôte et le CI/CD exécuté à distance. Pour chaque tentative, vous devrez valider et publier vos modifications avant d’attendre que la plate-forme CI/CD récupère la dernière version de votre code, initialise l’environnement tel que le téléchargement et l’installation des dépendances, et enfin exécute les tests.
Avec Travis CI et un peu de travail, vous pouvez recréer les conditions de vos tests en téléchargeant et en recréant l’image Docker qu’utilise Travis CI. Il s’agit d’un petit sujet avancé qui s’avère utile lorsque vos tests sont un peu plus complexes que d’habitude.
Avant de commencer, votre projet doit déjà être sur GitHub et activé dans Travis CI. Au moins une génération doit avoir été exécutée. Nous utilisons le journal de construction pour extraire l’image Docker à utiliser ainsi que les commandes exécutées par Travis CI à l’intérieur du conteneur pour préparer le travail. Dans le Job log
de votre projet, développez la Worker information
ligne et recherchez la ligne commençant par instance:
.
Worker information
hostname: bda7cfb4-248b-4402-aa9f-291eaca299e5@1.worker-org-cfdfb76bd-fv5jt.gce-production-4
version: v6.2.20-1-g3a987d6 https://github.com/travis-ci/worker/tree/3a987d61ed169c9539ad435d1a9b5f2d8c6ce4a6
instance: travis-job-8c5d2a02-68a2-4b51-bc02-625ef2c37ad3 travis-ci-sardonyx-xenial-1593004276-4d46c6b3 (via amqp)startup: 5.913615831s
Le nom de l’image Docker est le mot après travis-ci-
, sardonyx
dans l’exemple ci-dessus. De là, rendez-vous au Registre Docker de Travis CIlocalisez l’image Docker appropriée, travisci/ci-sardonyx
dans mon cas, et extraire le dernière version dans la section des balises. Il est packer-1606895335-7957c7a9
pour moi.
Maintenant, mettez à jour la commande ci-dessous avec le nom de l’image Docker :
INSTANCE="travisci/ci-sardonyx:packer-1606895335-7957c7a9"
Vous pouvez maintenant démarrer le conteneur et entrer à l’intérieur :
BUILDID="build-$RANDOM"
docker run --name $BUILDID -dit $INSTANCE /sbin/init
docker exec -it $BUILDID bash -l
Une fois entré dans le conteneur, connectez-vous avec le travis
user et installez les packages en utilisant les journaux Travis CI comme exemple :
su - travis
git clone --depth=50 --branch=master https://github.com/adaltas/remark-gatsby-plugins.git adaltas/remark-gatsby-plugins
cd adaltas/remark-gatsby-plugins
git checkout master
nvm install 14
yarn --frozen-lockfile
yarn test
yarn run v1.22.5
$ lerna run test
lerna notice cli v3.22.1
lerna info versioning independent
lerna info ci enabled
lerna info Executing command in 1 package: "yarn run test"
lerna info run Ran npm script 'test' in 'gatsby-remark-title-to-frontmatter' in 1.2s:
$ mocha 'test/**/*.coffee'
Extract title
✓ Move the title to frontmatter
1 passing (21ms)
lerna success run Ran npm script 'test' in 1 package in 1.2s:
lerna success - gatsby-remark-title-to-frontmatter
Done in 1.95s.
Si les tests réussissent localement sur votre image Docker, il y a de fortes chances qu’ils passent à distance sur la plateforme Travis CI.
More Stories
Test des écouteurs Jabra Elite 5 ANC : superbe design, bon son
La filiale londonienne du CWU dit aux ingénieurs de BT de rejeter l’offre de rémunération
Revue du générateur solaire Jackery Explorer 1500 : la protection contre les pannes de courant à son meilleur