# テストと公開

Source: https://openflow.run/ja/docs/guides/test-and-publish/
Language: ja
Product version: 0.1.0-beta.77

ドラフトを検証し、実行結果を確認して、固定されたバージョンを本番で有効にします。

ドラフトは編集可能です。本番実行は現在の Live 公開版を使います。テストと公開では確認する内容が異なるため、それぞれの結果で準備状況を判断します。

## グラフを検証する

ワークフローのチェックを実行すると、バインドの不足、無効なスキーマ、利用できない出力などを検出できます。検証に成功したグラフは、選択したエンジン仕様（Engine Contract）の確定的な互換性条件を満たします。外部アカウント、モデルサービス、コールバック URL の準備までは保証しません。

完全なチェックと公開では、グラフ全体を検証します。ドラフト実行では、選択したトリガーから到達可能な範囲とその依存関係を検証します。無関係な未完成の分岐があっても、テストできる場合があります。

## 1 つの入口をテストする

テストするトリガーを選び、代表的な入力を渡します。生成された実行履歴で、選択された分岐、ノード入力、業務出力、未処理の Wait、失敗を確認します。

人の判断を受けて、Approval が承認後の分岐か修正用の分岐を選びます。

**入力**
承認対象は「Your replacement is ready to ship.」という返信です。

**想定される結果**
承認すると Approved reply、却下すると Keep the draft に進みます。

**実行前の準備**
インポートや実行には Open Flow サービスが必要です。プレビュー自体はオフラインで動作します。

[ワークフローをダウンロード](https://openflow.run/docs/examples/approval-review.openflow.json)

この承認サンプルの分岐は、人が判断するまで停止します。プレビューから判断を送信することはできません。実際の実行では、権限のある実行インターフェースから未処理の Approval を承認または却下します。

## バージョンを公開する

公開時には、トリガーの購読など外部リソースを準備する場合があります。すべてに成功した場合のみ Live が切り替わり、対応するバインドが有効になります。準備に失敗しても、それまでの Live は維持されます。

公開後のドラフト編集は、今後のドラフトテストに反映されます。受け付け済みの実行が使うリビジョン、権限、入力は変更されません。

## 自動実行を有効にする

フローを公開して有効化したら、予定時刻、HTTP リクエスト、ポーリング結果、アプリのイベントなど、実際の自動入口を確認します。フローの無効化は新しい本番実行の受付を止めますが、受け付け済みの実行は取り消しません。

明示的な Live 実行は Start を入口にします。他のトリガーは、それぞれの管理機構を通して Live 実行を開始します。ドラフトテストでは任意のトリガーをシミュレーションできます。

## 再試行前に失敗を確認する

タスクが失敗しても、外部操作はすでに実行されている場合があります。`indeterminate` は実行結果を確認できない状態です。処理を繰り返す前に、外部システムの状態を確認してください。

ロールバックは過去の定義を指す新しい公開版を作成します。外部への影響を取り消したり、完了した実行を書き換えたりはしません。詳しくは[エラーと再試行](https://openflow.run/ja/docs/concepts/errors-and-retries/index.md)を参照してください。

## 参照元

*   [docs/architecture.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/architecture.md#3-execution-publication-and-lifecycle)
*   [docs/control/contracts/control-api.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/control/contracts/control-api.md#4-validation-publication-and-live)
