2017-08-25 15 views
0

タスク/リソースが実行されたときにイベントを発生させようとしています。現在の考え方は、タスクのスクリプトでイベントをトリガーすることです。コンコースのイベントをトリガーする

イベントで送信される情報の一部としてメタデータ変数(BUILD_ID、BUILD_NAME)が必要なため、リソース(メタデータにアクセスする唯一の方法)を作成してタスクに渡しました。 しかし、問題は私がタスクのこれらの変数にアクセスすることができないということです。

これを解決するための戦略はありますか?

答えて

0

リソース内のデータにアクセスする場合は、リソースを実行中のタスクに渡す必要があります。

チェックアウトこの例https://gist.github.com/gdenn/91e9d5369f7e0e289960e56cd69e942f

を私たちは、リソースsome_git_resourceとタスクuse_demo_resource_and_do_somethingを保持している仕事demo_jobを持っています。

some_resource内のデータにタスクがアクセスできるようにするには、リソースをタスクの入力として宣言する必要があります。

これは、15行目に変数名とパスを指定することによって行います。& 16. nameプロパティでは、リソース名を参照し、パス変数では、ドッカーコンテナ内のリソースフォルダのパスを指定します。

パイプラインをアップロードしてジョブをトリガーします。実行中にfly hijackコマンドを使用して、タスクuse_demo_resource_and_do_somethingのドッカーコンテナにログインします。コンテナには、ルートにsome_git_resourceという名前のフォルダがあります。

タスクの入力が1つだけの場合は、パスを.に設定することもできますが、これは1つの入力に対してのみ機能することに注意してください。タスクで複数の入力を使用する場合は、適切なpathを使用する必要があります。

タスク内でスクリプトに問題がある場合は、コンテナをハイジャックしてみてください。多くの場合、あなたの仕事がなぜこのように働いていないのか、より多くの洞察が得られます。 demo_job内のdemo_taskをハイジャックするには、次のコマンドを使用します。fly -t <your_target> hijack -j demo_job/demo_task

詳細については、コンコースタスクのドキュメントをチェックしてください。

+0

ありがとうRapdrei。そのハイジャックコマンドを自動化する方法はありますか?理想的には、イベントをパイプラインの一部として配置したいと思っています。現在、メタデータを収集してタスクに渡すリソースを使用してスクリプト内にイベントを配置しています。 – jflroes

+0

私たちには誤解があります。ハイジャックコマンドは、パイプラインをデバッグするためのコマンドです。パイプラインでは使用しないでください。 タスクが実行されるドッカーコンテナで何が起こっているのかを知ることは非常に便利です。 – gdenn

関連する問題