2017-08-14 1 views
1

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.

Répondre