を実行拒否しましたファイルの外側にあるdeploy.sh
(commands
以下)はすべて正常に動作します。CircleCI許可が、私はそうのような<code>circle.yml</code>ファイルを持っているbashスクリプト
circle.yml
ファイルのすべては、CircleCI docsの例と一致しているようです。何が間違っていますか?
を実行拒否しましたファイルの外側にあるdeploy.sh
(commands
以下)はすべて正常に動作します。CircleCI許可が、私はそうのような<code>circle.yml</code>ファイルを持っているbashスクリプト
circle.yml
ファイルのすべては、CircleCI docsの例と一致しているようです。何が間違っていますか?
いくつかの可能性のある問題:
chmod +x deploy.sh
は、この問題を解決します)最初に動作しない場合は、deploy.shの内容を確認できますか?
私は同じ問題を抱えていました。コマンドセクションの先頭にshを付けて動作させました。
deployment:
production:
branch: "master"
commands:
- sh ./deploy.sh
この修正によって、いつでも誰もが救われることを望みます。
@palfreyは、スクリプトが実行可能ファイルとマークされていない可能性があり、ローカルマシンのスクリプトに以前chmod +x
を実行していたとしても、展開時に間違っているように見えることがあります。 (理由は分かりませんが、誰かが私に啓発してください!)
ここには、スクリプトが常に実行可能とマークされていることを確認する一般的なコマンドがあります。これは、すべてが/home/ubuntu/${CIRCLE_PROJECT_REPONAME}/scripts
ディレクトリにあり、すべてが.sh
の拡張子を持つことを前提としています。あなたのディレクトリが異なっている場合は、そのディレクトリを代わりに使用するように編集してください。
私はすべてのスクリプトが実行可能としてマークされることを保証shared.sh
に次のコードを追加しますcircle.yml
によって呼び出される各スクリプトの先頭に共有スクリプト(shared.sh
)sourceすべての私のスクリプトので:
SCRIPTS="/home/ubuntu/${CIRCLE_PROJECT_REPONAME}/scripts"
find "${SCRIPTS}" | grep "\.sh$" | xargs chmod +x
を
魅力的な作品です。 :-)
私はこの解決策がスクリプトを実行するために働くが、 '' '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
@ eczajkだから代わりに ' - bash。/ deploy.sh'を使います。 – MikeSchinkel
@MikeSchinkelありがとう、それは私のために働いた – eczajk