web-dev-qa-db-ja.com

JenkinsからのShellコマンドの実行中にビルドが失敗する

シェルスクリプトを呼び出して、jenkinsの[シェルを呼び出す]オプションを使用してソースコードをビルドしています。私のコマンドは次のようになります:

export PATH=$PATH:/usr/bin/repo
cd /home/administrator/administrator/repo_sync
whoami
source ./build/envsetup.sh 
choosecombo release project_int_factory eng

その結果、エラーが発生しています。フォルダへの完全なアクセス許可を与えました。ソースコードの場所は/ home/administrator/administrator/repo_syncです。私はSudo chmod + x administratorで試しましたが、Sudo chmod 777 administratorは役に立ちません。 plus whoami return jenkins

Building in workspace /home/administrator/administrator/repo_sync
    [repo_sync] $ /bin/sh -xe /tmp/hudson1461193343405073934.sh
    + export PATH=/usr/lib/jvm/Java-6-openjdk-AMD64/bin:/usr/lib/jvm/Java-6-openjdk-AMD64/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/var/lib/jenkins/lib:/usr/lib/jvm/Java-6-openjdk-AMD64/bin:/home/administrator/pawan/adt-bundle-linux-x86_64-20140702/sdk/tools:/home/administrator/pawan/adt-bundle-linux-x86_64-20140702/sdk/platform-tools:/usr/bin/repo
    + cd /home/administrator/administrator/repo_sync
    + whoami
    jenkins
    + source ./build/envsetup.sh
    /tmp/hudson1461193343405073934.sh: 5: /tmp/hudson1461193343405073934.sh: source: Permission denied
    Build step 'Execute Shell' marked build as failure
    Finished: FAILURE
12

Jenkinsスクリプト(および「シェルの実行」ビルドステップisスクリプト)は、Jenkinsを実行するユーザーで実行されます。デフォルトでは、Jenkinsはjenkinsユーザーとして実行されます

以下から明らかなように、スクリプトは「jenkins」ユーザーとして実行されます。
+ whoami
jenkins

chmodではなくjenkinsユーザーに対してadministratorコマンドを実行する必要があります。

8
Slav

ランニング bash command.shは私のために働きました。

9
Anish

実行ビットを.shファイルに追加する

git add --chmod=+x "filename"
8
Nilamber Singh