サンプルワークフローの作業を進めるには、まずワークフローを設定する必要があります。
ブロックの設定にアクセスするには、タブでEdit parametersをクリックするか、ブロックを右クリックしてEdit parametersを選択し、ウィンドウを開きます。ブロックにパラメータが設定されると、 ボタンが に切り替わります。
例のブロックを構成するには、次の手順に従います。
-
アクションの ウィンドウを開きます。List locales
-
フィールドと フィールドには、実行時に解決される動的な値が必要です。
-
フィールドのリンクアイコン
をクリックし、
アクションを選択します。Fetch access tokens
リンクが緑色に変わり、フィールドを編集できるようになります。
-
参照されたトリガーまたはアクションのプロパティにアクセスするための構文は次のとおりです。
{{$.path.to.value}}の出力は次のとおりです。Fetch access tokens
{ "tokens": {"strings_token":"STRINGS_TOKEN", "tms_token":"TMS_TOKEN"} }フィールドに必要な式は
{{$.tokens.strings_token}}となります。 -
フィールドのリンクアイコン
をクリックし、
トリガーを選択します。uploads:create
リンクが緑色に変わり、フィールドを編集できるようになります。
-
トリガーの出力は次のようになります。uploads:create
{ "branch": { "name": "my_branch" }, "event": "uploads:create", "message": "user-1 initialized file upload file.yml in project name_1672734591_11 within branch my_branch\n", "project": { "created_at":"2023-01-03 08:29:51 UTC", "id": "abcdabcdabcdabcd-11", "main_format": "yml", "name": "name_1672734591_10", "point_of_contact": null, "project_image_url": null, "slug": "name_1672734591_10", "updated_at":"2023-01-03 08:29:51 UTC" }, "upload": { "created_at":"2023-01-03 08:29:48 UTC", "filename": "file.yml", "format": "yml", "id": "upload-1", "state": "initialized", "summary": {}, "tag": null, "updated_at":"2023-01-03 08:29:48 UTC" }, "user": { "gravatar_uid":"29a2d1baa67d4ea524cf0f247f7bbb94", "id":"9c365b9a6f77c247c3de959f6152b231", "name":"Joe Sixpack", "username": "user-1" } }フィールドに必要な式は
{{$.project.id}}となります。 -
保存をクリックします。
ウィンドウが閉じ、アクションのパラメータが保存されます。
-
-
ジョブの作成には、プロジェクトのデフォルトロケールのIDが必要です。このIDを
アクションに渡します。Create Job
アクションは、JSON入力を受け取り、指定されたフィルターを適用してから、JSONを出力します。Transform JSON with jq
-
ウィンドウの タブで、phrase-jq を検索します。
アクションブロックをTransform JSON with jq
アクションの下にドラッグ&ドロップして、両者を接続します。list locales
-
Transform JSON with jqアクションの ウィンドウを開きます。 -
ドロップダウンフィールドから を選択します。
-
フィールドのリンクアイコン
をクリックし、
アクションを選択します。list locales
リンクが緑色に変わり、フィールドを編集できるようになります。
-
フィールドはJSON入力を受け取ります。特別な固定式(
$ではなく@)により、参照先のアクションの出力全体がフィールドに渡されます。フィールドに式
{{@.outputs.result}}を入力します。 -
フィールドのリンクアイコン
をクリックし、
アクションを選択します。list locales
リンクが緑色に変わり、フィールドを編集できるようになります。
-
defaultプロパティがtrueであるすべての要素を含む新しいリストを返す、ロケールリストのフィルタが必要です。各プロジェクトのデフォルトロケールは1つだけなので、このリストには目的の要素が1つだけ含まれます。その要素には、
.[0]配列構文を使用して直接アクセスします。フィールドに式
map(select(.default))|.[0]を入力します。 -
保存をクリックします。
ウィンドウが閉じ、アクションのパラメータが保存されます。
-
-
これで、前のブロックと同じ手順に従って
アクションを設定できます。Create a job
-
フィールドのリンクアイコン
をクリックし、
アクションを選択します。Fetch access tokens
リンクが緑色に変わり、フィールドを編集できるようになります。
式
{{$.tokens.strings_token}}を入力します。 -
フィールドのリンクアイコン
をクリックし、
トリガーを選択します。uploads:create
リンクが緑色に変わり、フィールドを編集できるようになります。
式
{{$.project.id}}を入力します。 -
フィールドのリンクアイコン
をクリックし、
Transform JSON with jqアクションを選択します。リンクが緑色に変わり、フィールドを編集できるようになります。
式
{{@.outputs.result}}を入力します。 -
期限は sprig または Expr 関数で計算 できますが、この例では API が解釈できる固定の日付を使用します。
フィールドに 2023-12-31T12:00:00Z と入力します。
-
保存をクリックします。
設定は保存され、詳細はタブで確認できます。
-
-
すべてのアクションには、論理
ANDおよびORで結合された1つ以上の条件を設定できます。これらの条件は実行時に評価され、条件が真と評価された場合にのみ、アクションとその子要素が実行されます。これを例に反映させるには、
アクションを選択した状態で、タブからEdit conditionsをクリックするか、ブロックを右クリックしてEdit conditionsを選択します。Create a job
ウィンドウが開きます。
-
前のブロックのパターンに従い、フィールドを
トリガーにリンクし、式uploads:create
{{$.upload.tag}}を入力します。 -
条件式の真偽を反転させるには、最初のドロップダウンリストからNOTを選択します。
-
ドロップダウンリストからIsNullを選択します。
-
保存をクリックします。
条件はタブに表示されます。
アップロードにタグが含まれていない場合(新しいキーや翻訳、または更新されたキーや翻訳が存在しない場合)、ワークフローはこの時点で停止します。
-
-
ジョブにはターゲットロケールが必須となりました。この例では、スペイン語(es-ES)用とドイツ語(de-DE)用の2つのロケールを作成します。ロケールは、ステップ3と同様にウィンドウ内の2つの
アクションに追加されます。Transform JSON with jq
-
両方のアクションのフィールドに式
{{@.outputs.result}}を入力し、アクションにリンクして、パラメーターを保存します。List locales
-
一方のアクションの フィールドに式
map(select(.name == "es-ES"))|.[0]を入力し、アクションにリンクします。List locales
パラメーターを保存します。
-
2番目のアクションに式
map(select(.name == "de-DE"))|.[0]を入力し、アクションにリンクします。List locales
パラメーターを保存します。
-
-
これで、ロケールがジョブ作成に適用されます。
以前に定義したのと同じパターンを使用して、2つの
アクションを設定します。Add a target locale to a job
-
これでジョブを開始できます。
以前に定義したのと同じパターンを使用して、
アクションを設定します。Start a job
ブロックの設定後、スケジュールやWebhookなどのトリガーを待たずに、ワークフローをオンデマンドで実行してテストできます。
以下のいずれかの方法で実行を開始します。
-
ワークフローエディターで Run ボタンを使用して、 ダイアログを開きます。
-
パブリックAPIで
/orchestrator/api/v1/workflows/{workflow_id}/executionsへのPOSTリクエストを送信します。
実行には常にワークフローの最新リビジョンが使用されます。リビジョンは公開されている必要はありませんが、公開時の検証に合格している必要があります。ワークフローを実行するたびに新しい実行記録が作成され、 ページに Manual タグ付きで一覧表示されます。
備考
オンデマンド実行は、次世代ワークフローエンジン上のワークフローでのみ利用可能です。レガシーワークフローの場合、エディターにはRunボタンが表示されず、APIは422エラーを返します。
アクションバンドルとテンプレートは実行できず、ワークフローには所有者が必要です。