サンプルワークフローを続けるためには、まず設定を行う必要がある。
ブロックの設定には、タブで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がプロジェクトname_1672734591_11のブランチmy_branch内で、file.ymlのファイルアップロードを初期化しました。\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":"ジョー・シックスパック", "username": "user-1" } }フィールドに必要な式は
{{$.project.id}}です。 -
Saveをクリックします。
ウィンドウが閉じ、アクションのパラメータが保存されます。
-
-
プロジェクトのデフォルトロケールは、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}}を入力します。 -
フィールドのリンクアイコン
をクリックして、
アクションを選択します。一覧ロケール
リンクが緑色になり、フィールドを編集できるようになります。
-
defaultプロパティがtrueであるすべての要素を含む新しい一覧を返すロケールの一覧のフィルタが必要です。プロジェクトごとにデフォルトロケールは1つだけで、リストには1つの識別可能で必要な要素があります。その要素は
.[0]配列構文で直接アクセスされます。式
map(select(.default))|.[0]をフィールドに入力します。 -
Saveをクリックします。
ウィンドウが閉じ、アクションのパラメータが保存されます。
-
-
アクションは、これで構成でき、以前のブロックからのパターンを使用します。Create a job
-
のリンクアイコンをクリックして、フィールドを選択し、
アクションを選択します。Fetch access tokens
リンクが緑色になり、フィールドを編集できるようになります。
式
{{$.tokens.strings_token}}を入力します。 -
のリンクアイコンをクリックし、フィールドを選択し、
トリガーを選択します。uploads:create
リンクが緑色になり、フィールドを編集できるようになります。
式
{{$.project.id}}を入力します。 -
のリンクアイコンをクリックして、フィールドを選択し、
Transform JSON with jqアクションを選択します。リンクが緑色になり、フィールドを編集できるようになります。
式
{{@.outputs.result}}を入力します。 -
期限日はcalculated with sprig or Expr functionsですが、この例ではAPIが認識するハードコーディングされた日付が使用されます。
フィールドに2023-12-31T12:00:00Zを入力します。
-
保存をクリックします。
構成が保存され、詳細はタブで表示できます。
-
-
すべてのアクションには、論理
ANDおよびORで組み合わされた1つ以上の条件を持つことができます。これらの条件は実行時に評価され、条件が真と評価される場合にのみアクションとその子が実行されます。この例を反映させるには、
アクションを選択した状態で、タブから条件を編集をクリックするか、ブロックを右クリックして条件を編集を選択します。ジョブを作成
ウィンドウが開きます。
-
以前のブロックからのパターンに従い、フィールドを
トリガーにリンクし、式アップロード:作成
{{$.upload.tag}}を入力します。 -
最初のドロップダウンリストからNOTを選択して、ステートメントを反転させます。
-
ドロップダウンリストからIsNullを選択します。
-
保存をクリックします。
条件はタブに表示されます。
アップロードにタグが含まれていない場合、ワークフローはこの時点で停止します(新しい/更新されたキー/訳文がないことを意味します)。
-
-
ジョブにはターゲットロケールが必要です。例の目的のために、スペイン語(es-ES)用とドイツ語(de-DE)用の2つのロケールが作成されます。ロケールは、ステップ3と同様に、
アクションのウィンドウに追加されます。jqでJSONを変換
-
両方のアクションのフィールドに、式
{{@.outputs.result}}を入力し、アクションにリンクしてパラメータを保存します。一覧ロケール
-
1つのアクションのフィールドに、式
map(select(.name == "es-ES"))|.[0]を入力し、アクションにリンクします。一覧ロケール
パラメータを保存します。
-
2番目のアクションで、式
map(select(.name == "de-DE"))|.[0]を入力し、アクションにリンクします。一覧ロケール
パラメータを保存します。
-
-
ロケールは、ジョブ作成に適用されます。
2つの
アクションを、以前に定義したのと同じパターンで構成します。ジョブにターゲットロケールを追加
-
ジョブを開始できます。
アクションを、以前に定義したのと同じパターンで構成します。ジョブを開始