サンプルワークフローを続けるには、構成する必要があります。
ブロックの構成には、タブでパラメータの編集をクリックするか、ブロックを右クリックしてパラメータの編集を選択し、ウィンドウを開いてアクセスできます。ブロックにパラメータが含まれると、ボタンがに切り替わります。
例のブロックを構成するには、次の手順に従います。
-
アクションのウィンドウを開きます。ロケールの一覧
-
フィールドとフィールドには、実行時に解決される動的な値が必要です。
-
フィールドのリンクアイコン
をクリックし、
アクションを選択します。トークンへのアクセスを取得
リンクが緑色に変わり、フィールドを編集できるようになります。
-
参照されたトリガーまたはアクションのプロパティにアクセスするための構文は次のとおりです。
{{$.path.to.value}}の出力は次のようになります。トークンへのアクセスを取得
{ "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を
アクションに渡してジョブを作成するには、プロジェクトのデフォルトロケールが必要です。ジョブの作成
アクションは、JSON入力を受け取り、指定されたフィルタを適用してから、再びJSONを出力しますjqでJSONを変換
-
ブロックウィンドウの タブから、Phrase-jq を検索します。
アクションブロックをTransform JSON with jq
アクションの下にドラッグ&ドロップして接続します。ロケールの一覧
-
Transform JSON with jqアクションの ウィンドウを開きます。 -
ドロップダウンフィールドから を選択します。
-
フィールドのリンクアイコン
をクリックし、
アクションを選択します。ロケールの一覧
リンクが緑色に変わり、フィールドを編集できるようになります。
-
フィールドは JSON 入力を受け取ります。特別な固定式(
$<3> ではなく@)により、参照されたアクションの出力全体がフィールドに渡されるようになります。フィールドに式
{{@.outputs.result}}を入力します。 -
フィールドのリンクアイコン
をクリックし、
アクションを選択します。ロケールの一覧
リンクが緑色に変わり、フィールドを編集できるようになります。
-
defaultプロパティがtrueであるすべての要素を含む新しい一覧を返すロケールの一覧のフィルタが必要です。プロジェクトごとにデフォルトのロケールは1つしか存在できず、一覧には識別可能で必須の要素が1つ含まれています。その要素には、
.[0]配列構文を使用して直接アクセスします。フィールドに式
map(select(.default))|.[0]を入力します。 -
保存をクリックします。
ウィンドウが閉じ、アクションのパラメータが保存されます
-
-
アクションが設定可能になり、前のブロックのパターンが使用されます。ジョブを作成
-
フィールドのリンクアイコン
をクリックし、
アクションを選択します。トークンへのアクセスを取得
リンクが緑色に変わり、フィールドを編集できるようになります。
式
{{$.tokens.strings_token}}を入力します。 -
フィールドのリンクアイコン
をクリックし、
トリガーを選択します。uploads:create
リンクが緑色に変わり、フィールドを編集できるようになります。
式
{{$.project.id}}を入力します。 -
フィールドのリンクアイコン
をクリックし、
Transform JSON with jqアクションを選択します。リンクが緑色に変わり、フィールドを編集できるようになります。
式
{{@.outputs.result}}を入力します。 -
期限は sprig または Expr 関数で計算 できますが、この例では API が理解できるハードコードされた日付を使用します。
フィールドに 2023-12-31T12:00:00Z と入力します。
-
保存をクリックします。
設定は保存され、詳細は タブで確認できます。
-
-
すべてのアクションには、論理
ANDおよびORで結合された1つ以上の条件を設定できます。これらの条件は実行時に評価され、条件が真と評価された場合にのみ、アクションとその子要素が実行されます。これを例に反映させるには、
アクションを選択した状態で、タブから条件を編集をクリックするか、ブロックを右クリックして条件を編集を選択します。ジョブを作成
ウィンドウが開きます。
-
前のブロックのパターンに従い、フィールドを
トリガーにリンクし、式アップロード:作成
{{$.upload.tag}}を入力します。 -
ステートメントを反転させるには、最初のドロップダウン一覧からNOTを選択します。
-
ドロップダウン一覧からIsNullを選択します。
-
保存をクリックします。
条件はタブに表示されます。
アップロードにタグが含まれていない場合(新しい/更新されたキー/訳文がないことを意味します)、ワークフローはこの時点で停止します。
-
-
ジョブには訳文ロケールが必須となりました。この例では、2つのロケールが作成されます。1つはスペイン語(es-ES)、もう1つはドイツ語(de-DE)用です。ステップ3と同様に、
アクションのウィンドウで、にロケールが追加されます。Transform JSON with jq
-
両方のアクションのフィールドに式
{{@.outputs.result}}を入力し、アクションにリンクして、パラメータを保存します。ロケール一覧
-
一方のアクションのフィールドに式
map(選択(.name == \"es-ES\"))|.[0]を入力し、アクションにリンクします。ロケール一覧
パラメータを保存します。
-
2番目のアクションに式
map(選択(.name == \"de-DE\"))|.[0]を入力し、アクションにリンクします。ロケール一覧
パラメータを保存します。
-
-
これで、ジョブ作成にロケールが適用されます。
以前に定義したのと同じパターンで、2つの
アクションを設定します。ジョブに訳文ロケールを追加
-
これでジョブを開始できます。
以前に定義したのと同じパターンで、
アクションを設定します。ジョブを開始