2

ビルド パイプラインを作成したいのですが、開発者は、フロント エンド GUI を使用して入力されるプロパティ ファイルにいくつかの設定を行う必要があります。

Python を使用してサンプルの CLI インタラクティブ スクリプトを実行してみましたが、名前を尋ねただけで後で出力されましたが、Jenkins は何年も待ってからハングアップしました。入力を求められたことがわかりましたが、ユーザーがデータを入力する方法がありませんでした。

編集:現在、サービスとしてJenkinsを実行しています..または、誰かが推奨する優れたプラグインがありますか、それともPythonスクリプトを作成した方法ですか?

好み: 少し軽量なので Python を使用することを好みますが、他の言語で成功した場合は構成できます。

GUI メニューを使用してデータを入力すると、オプション ボックスを使用したり、ドロップダウン メニューを使用したりできるので便利ですが、必須ではありません。現在の展開よりも CLI の方がはるかに優れています。

ところで、Python 2.7 と Java 1.7 を実行している Windows 7 ラップトップでこれらすべてを実行しています。

エッセイでごめんなさい!うまくいけば、人々は私を助けることができます!

4

1 に答える 1

1

申し訳ありませんが、Jenkins はインタラクティブなアプリケーションではありません。自動実行用に設計されています。

Jenkins ジョブ (およびそのジョブから実行されるすべてのもの) への入力を取得する唯一の実行可能な方法は、ジョブが開始される前に設定されたジョブ パラメーターを使用することです。確かに、パラメーター入力用の Jenkins GUI は最高ではありませんが、機能はします。Jenkins ジョブは、ジョブの開始時にジョブ パラメーターを収集すると、ジョブ中の任意の時点で、実行するすべてのもの (Python、シェルなど) にそれらのパラメーターを渡すことができます。そのためには、次の 2 つのことが当てはまる必要があります。

  • ジョブを開始する前に、すべての入力データを収集する必要があります
  • ジョブが呼び出すもの (Python、シェルなど) は、対話形式ではなく、コマンド ラインから入力を受け取る必要があります。

プログラムに入力を取得する方法

適切に設計されたスクリプトは、コマンド ラインでパラメーターを単純に受け入れることができるはずです。

./goodscript.sh MyNameスクリプトの最初のパラメーターに値MyNameが格納される最も簡単な方法です。$1後続のコマンド ライン パラメーターは、 variables$2などで使用できます$3

./goodscript.sh -name MyName -age 30スクリプトは、パラメーター値の前にパラメーター名を指定することで、順序に関係なく複数のパラメーターを受け取ることができます。パラメータを渡すこのメソッドにgetoptを使用する方法について読むことができます

goodscript.sh上記の両方の例は、これらのコマンド ライン パラメータを処理できるように適切に記述されていることを前提としています。スクリプトがコマンド ライン パラメータを明示的に処理しない場合、上記を実行しても意味がありません。

コマンド ライン パラメータを明示的に処理するように設計されていない対話型スクリプトに出力を「パイプ」することができます。これは、ユーザーに提供される最初の対話型プロンプトに
echo MyName | ./interactivescript.sh値を渡します。これに関する問題は、最初の対話型プロンプトにしか値を渡すことができないことです。MyNameinteractivescript.sh

Jenkins ジョブ パラメータ GUI

上で述べたように、Jenkins GUI を使用して、あらゆる種類のジョブ パラメータ (ドロップダウン リスト、チェックボックス、テキスト エントリ) を収集できます。パラメータを使用してJenkinsジョブをセットアップする方法を知っていると思います。そうでない場合は、ジョブ構成で「このビルドはパラメーター化されています」チェックボックスをクリックします。これを設定する方法がわからない場合、それは別の問題であり、個別に説明する必要があります。

ただし、Jenkins ジョブが事前にすべてのパラメーターを収集したら、「シェルの実行」ステップでそれらを参照できます。Windows を使用している場合は として参照し%PARAM_NAME%、Linux では として参照します$PARAM_NAME

ヘルプが必要なことを説明してください: スクリプトでコマンド ライン パラメーターを受け入れるようにするか、jenkins ジョブ GUI からそれらのコマンド ライン パラメーターを渡します。この回答をさらに詳しく説明します。

于 2013-02-15T14:34:13.650 に答える