2016-04-01 11 views
2

私はビーカーに基づいた受け入れテストを備えたパペットモジュールを持っています。モジュールは正常に動作していて、ローカルで実行しているときはすべての受け入れテストがうまく動作します。私はトラヴィスのテストを実行したときしかし、私は、モジュールの実行中に、次のエラーを得た:パペット+ビーカー+トラビス:受け入れテストに失敗する

/Stage[main]/Alfred::Services/Service[alfred]: Could not evaluate: undefined method `[]' for nil:NilClass 

アルフレッドは自分のモジュールの一部である成り上がりに基づいてシステムサービスです。 私はPuppet 4.3.2を使用しています。トラビスのビルドは次のとおりです。https://travis-ci.org/nicopaez/alfred-puppet

答えて

1

コードを見ると、いくつかの問題があります。

1つは、Travisで使用している環境変数がPuppetバージョンを設定していないことです。あなたのspec_helper_acceptance.rbにそのコードを追加する必要があります。

hosts.each do |host| 
    install_puppet_on(host, 
    :puppet => ENV['PUPPET_VERSION'] || '4.3.2', 
) 
end 

は、今のところそれはまだ実際に私が有効になってトラヴィス、I forked your repo and did a buildに問題を引き起こしているものについての詳細はパペット3.8(デフォルト最新)

をインストールしていますデバッグおよびトレースビーカーのオプション:トラヴィスを見ている。このことから

result = apply_manifest(pp, :trace => true, :debug => true) 

は、構築、gitのクローン幹部との問題をtheresの:

Debug: Exec[clone-repo](provider=posix): Executing 'git clone https://github.com/fiuba/alfred.git /var/www/alfred' 
    Debug: Executing 'git clone https://github.com/fiuba/alfred.git /var/www/alfred' 
    Notice: /Stage[main]/Alfred::App/Exec[clone-repo]/returns: fatal: Could not change back to '/root': Permission denied 
    Error: git clone https://github.com/fiuba/alfred.git /var/www/alfred returned 128 instead of one of [0] 

あなたはより多くの冪等の方法でGitのクローンを実行vcsrepoモジュール、使用することによってこの問題を解決することができます:

vcsrepo { '/var/www/alfred': 
    ensure => present, 
    source => 'https://github.com/fiuba/alfred.git', 
    provider => git, 
    user  => 'deployer', 
} 

他のいくつかの修正がありますが、私はそれらを修正するためにあなたのモジュールにプリングいくつかの修正ですいくつかの異なるアプローチを持つ重要なリファクタがいくつかあるので、ここでは、スタックオーバーフローの解答に要約を追加します。

+0

ありがとう@peterしかし、テストでは基本的なものをチェックするので、ビルドが動作するマスターブランチで作業していると思います。いくつかのテストがある「fix-travis」ブランチを見て、私が報告しているエラーを見てください。 – NicoPaez

関連する問題