2015-11-26 13 views

答えて

18

いくつかの可能性のある問題:

  1. deploy.shが実行可能としてマークされていない可能性があります(chmod +x deploy.shは、この問題を解決します)
  2. deploy.shの最初の行が実行可能シェルではないかもしれません...

最初に動作しない場合は、deploy.shの内容を確認できますか?

16

私は同じ問題を抱えていました。コマンドセクションの先頭にshを付けて動作させました。

deployment: 
    production: 
    branch: "master" 
    commands: 
     - sh ./deploy.sh 

この修正によって、いつでも誰もが救われることを望みます。

+0

私はこの解決策がスクリプトを実行するために働くが、 '' 'sh'''を使うといくつかの拡張機能を無効にすることが分かった。 https://unix.stackexchange.com/questions/155838/shell-script-throws-a-not-found-error-when-run-from-a-sh-file-but-if-entered-ma – eczajk

+1

@ eczajkだから代わりに ' - bash。/ deploy.sh'を使います。 – MikeSchinkel

+1

@MikeSchinkelありがとう、それは私のために働いた – eczajk

0

@palfreyは、スクリプトが実行可能ファイルとマークされていない可能性があり、ローカルマシンのスクリプトに以前chmod +xを実行していたとしても、展開時に間違っているように見えることがあります。 (理由は分かりませんが、誰かが私に啓発してください!)

ここには、スクリプトが常に実行可能とマークされていることを確認する一般的なコマンドがあります。これは、すべてが/home/ubuntu/${CIRCLE_PROJECT_REPONAME}/scriptsディレクトリにあり、すべてが.shの拡張子を持つことを前提としています。あなたのディレクトリが異なっている場合は、そのディレクトリを代わりに使用するように編集してください。

私はすべてのスクリプトが実行可能としてマークされることを保証shared.shに次のコードを追加しますcircle.ymlによって呼び出される各スクリプトの先頭に共有スクリプトshared.shsourceすべての私のスクリプトので:

SCRIPTS="/home/ubuntu/${CIRCLE_PROJECT_REPONAME}/scripts" 
find "${SCRIPTS}" | grep "\.sh$" | xargs chmod +x 

魅力的な作品です。 :-)

関連する問題