J'ai mis en place un job de déploiement pour un blog Hugo sur GitHub Pages, le code lui-même est stocké dans la branche dev
tandis que les fichiers statiques qui sont le blog rendu sont stockés dans master
branche.Travis CI démarre automatiquement un travail sur la branche `deploy` et échoue
Par conséquent j'ai créé un fichier YAML .travis.yml
qui restitue tout dans public/
et le déploie à master
. La partie pertinente de l'.travis.yml
ressemble à ceci:
branches:
only:
- dev
except:
- master
deploy:
github_token: $GITHUB_TOKEN
provider: pages
target_branch: master
skip_cleanup: true
local_dir: public
on:
branch: dev
Cela fonctionne parfaitement. Chaque fois que je pousse le code à dev
le script est exécuté et le site Web statique est en cours de rendu et généré à public/
, mais pour une raison quelconque, cela crée également un travail de construction automatique, créé et démarré par Deployment Bot (from Travis CI)
.
Je n'ai pas un fichier .travis.yml
dans master
branche donc Travis évidemment des plaintes à ce sujet, déclarant:
Could not find .travis.yml, using standard configuration.
et plus tard après l'exécution échoue sur rake
:
$ rake
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
/home/travis/.rvm/gems/[email protected]/gems/rake-12.0.0/exe/rake:27:in `<top (required)>'
/home/travis/.rvm/gems/ruby-2.4.1/bin/ruby_executable_hooks:15:in `eval'
/home/travis/.rvm/gems/ruby-2.4.1/bin/ruby_executable_hooks:15:in `<main>'
(See full trace by running task with --trace)
The command "rake" exited with 1.
Je comprends pourquoi ce le travail échoue. Le problème est que ce travail n'aurait jamais dû être exécuté en premier lieu. Il n'y a aucune raison d'exécuter un travail CI sur les fichiers statiques, qui sont le résultat du travail CI original prévu.
Comment puis-je faire en sorte que Travis arrête de créer ce travail automatiquement après le déploiement? Travis n'ignore pas les builds sur la branche master bien qu'il soit répertorié sous branches: except
dans le fichier YAML.