web-dev-qa-db-ja.com

JenkinsにGitから取得したスクリプトを実行させるにはどうすればよいですか?

私はJenkinsを使用して、一連のインポートジョブをトリガーおよび管理しています。インポートスクリプトをGithubに配置します。Jenkinsがジョブをビルドするときに、(a)そのバージョン管理されたスクリプトをGithubからプルし、(b)スクリプトを実行します。

私が実行している問題は、ジョブ内で実行するスクリプトの名前を参照する方法がわからないことです。ソースコードがワークスペースディレクトリにプルされていることを前提としています。その仮定は正しいですか? (ドキュメントさえあれば!)

これまでに行ったことは次のとおりです。

  1. WindowsサーバーにJenkins(明らかに)をインストールしました(いいえ、それについて選択の余地はありませんでした)
  2. 私のgithubアカウントにリポジトリを作成し、その中にコードを入れました
    • https://github.com/mcholl/SARS-Import/ で公開されています
    • Roottest.pyとomniture-video\test.pyの2つのスクリプトがあることがわかります。そこにあるコードはAppleの特許下にあります。
    • 私はroottest.pyを実行したいという考えです
  3. インストール Githubプラグイン
  4. 次のようにジョブを作成しました:
  5. ジョブを手動で実行する

ただし、ファイルが見つからないというエラーメッセージが表示されます。ワークフローは「ソースのローカルコピーを...(Job)/ workspace /ディレクトリにプルし、ワークスペースディレクトリのコンテキストでバッチコマンドを実行する」と想定しているため、これは奇妙です。

これが完全なコンソール出力です:

ワークスペースC:\ Program Files(x86)\ Jenkins\jobs\Testing Github Integration\workspace [workspace]のユーザー匿名ビルドによって開始されました$ cmd/c C:\ Windows\TEMP\hudson1966342425043540895.batを呼び出します

C:\ Program Files(x86)\ Jenkins\jobs\Testing Github Integration\workspace> python roottest.py python:ca n't open file 'roottest.py':[Errno 2] No such file or directory

C:\ Program Files(x86)\ Jenkins\jobs\Testing Github Integration\workspace> exit 2ビルドステップ 'Windowsバッチコマンドの実行'ビルドに失敗とマーク終了:FAILURE

明らかに、コンソールに印刷ステートメントの結果が表示されることを期待していました。

何をめちゃくちゃにしましたか?そして、なぜ私のスクリプトは既にそこにないのですか?

12
Affable Geek

私のビルド(Linuxホスト上)の場合、私は次のように(Jenkinsのビルドステップとして)新しくチェックアウトしたワークスペースからビルドスクリプトを実行します。

シェルコマンドを実行:

 sh -x $WORKSPACE/build/myproject.build

もちろん、Windowsでも同様に機能すると思いますが、/ではなく\を使用し、スクリプトの実行にshではなくpythonを使用しています。

5
eric.green

ビルドでは2行を記述できます。

chmod 777 ./my_script.sh
./my_script.sh
2
Andrs Zam

スクリプトをGitに保存できます。 test.sh:

#!/bin/bash
_test_func(){ 
 echo 'test'
}

次に、「シェルの実行」入力で、そのスクリプトのインポートを配置し、「_ test_func」を呼び出します。

source test.sh
_test_func

結果:

 + source test.sh
 + _test_func
 test
0
Raf