> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Workflows

> 任意のコマンドを実行する設定可能な実行ボタンであるWorkflowsのセットアップ方法を学びましょう。

export const YouTubeEmbed = ({videoId, title = "YouTube video", startAt}) => {
  if (!videoId) {
    return null;
  }
  let url = "https://www.youtube.com/embed/" + videoId;
  if (startAt) {
    url = url + "?start=" + startAt;
  }
  return <Frame>
      <iframe src={url} title={title} allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen></iframe>
    </Frame>;
};

Replitアプリ内で実行できる再利用可能でカスタマイズ可能な一連のステップです。`python main.py`を実行するだけのシンプルなものから、複数ステップの手順を実行する複雑なものまで作成できます。

<Frame>
  <img src="https://mintcdn.com/replit/9NKf1XREDj9JhKJb/images/workflows/workflows-pane.png?fit=max&auto=format&n=9NKf1XREDj9JhKJb&q=85&s=a4464dfb08cede3df14c1eb43d33b284" alt="ワークフローペインの画像" width="525" height="622" data-path="images/workflows/workflows-pane.png" />
</Frame>

使用例：

* 複数のサービスを並行して実行する（例：フロントエンド + バックエンド）
* ファイルやコマンドを順番に実行する（例：リンター実行 → テスト実行、コンパイル → コード実行）

[ワークフローの作成](#creating-workflows)を開始するには、ツールサイドバーメニューを使用するか、`Command + K`を使用してWorkflowsペインを検索します。

<YouTubeEmbed videoId="I5wePXNdPwg" title="ReplitのWorkflows" />

## 利用可能なタスクタイプ

現在3種類のタスクが利用可能です：`Execute Shell Command`、`Install Packages`、`Run Workflow`です。

### Execute Shell Command

`Execute Shell Command`はシェルコマンドを保存し、Shellペインと同じ環境を使って実行します。このタスクタイプは、個々のファイルを実行するなど幅広い用途があります：

```text theme={null}
python main.py
```

複雑なデータベースクエリコマンドの実行まで：

```text theme={null}
psql -h 0.0.0.0 -U your_username -d your_database -c "SELECT * FROM your_table;"
```

使用例：

<Frame>
  <img src="https://mintcdn.com/replit/9NKf1XREDj9JhKJb/images/workflows/shellExec-task-example.gif?s=f4853df72f16df0c4101788413504893" alt="Shell実行タスクの例" width="908" height="602" data-path="images/workflows/shellExec-task-example.gif" />
</Frame>

### Install Packages

`Install Packages`はReplitの組み込み依存関係管理システムを利用し、プロジェクトの依存関係を自動的に検出してプロジェクトに必要なパッケージをインストールします。UPMがプロジェクトにインストールするパッケージをどのように推測するかについての詳細は、[依存関係管理](/references/project-setup/dependency-management#the-universal-package-manager)をご覧ください。

使用例：

<Frame>
  <img src="https://mintcdn.com/replit/9NKf1XREDj9JhKJb/images/workflows/packager-task-example.webp?fit=max&auto=format&n=9NKf1XREDj9JhKJb&q=85&s=713ff279fccebb7e2b2f6538eac208a8" alt="パッケージャータスクの例" width="720" height="429" data-path="images/workflows/packager-task-example.webp" />
</Frame>

### Run Workflow

`Run Workflow`を使うと、現在のワークフローから別のワークフローを実行できます。これにより、ワークフローを再利用したり、組み合わせてより複雑なワークフローを作成したりできます。

使用例：

<Frame>
  <img src="https://mintcdn.com/replit/0ixNWaRF232g0Gwn/images/workflows/example-run-workflow.webp?fit=max&auto=format&n=0ixNWaRF232g0Gwn&q=85&s=2425c11902b5801a65517c3fb221ac0b" alt="ワークフロー実行の例" width="720" height="678" data-path="images/workflows/example-run-workflow.webp" />
</Frame>

このタスクタイプを使ってワークフロー間の依存関係を作成することで、1つのワークフローを編集すると、それを参照している他のワークフローが最新の変更を自動的に使用するようになります。深くネストされたワークフロー呼び出しには深さの制限があることに注意してください。

## ワークフローの実行モード

Workflowsは順次と並行の2つの異なる実行モードを提供します。

### 順次

順次実行は、定義された順序でタスクを実行し、各タスクが完了するのを待ってから次のステップに進み、ワークフロー内のタスクが失敗した場合は実行を停止します。

このモードを使用する例として、メインブランチから最新の変更をフェッチし、現在のブランチをメインブランチにリベースするgitコマンドなど、論理的に連結されたコマンドを定義することが挙げられます：

<Frame>
  <img src="https://mintcdn.com/replit/9NKf1XREDj9JhKJb/images/workflows/example-sequential-workflow.png?fit=max&auto=format&n=9NKf1XREDj9JhKJb&q=85&s=718be1d1e659dff1dc04f15ec24deb52" alt="順次ワークフローの例" width="721" height="654" data-path="images/workflows/example-sequential-workflow.png" />
</Frame>

### 並行

並行実行は、各タスクが開始されてワークフロー内の他のタスクから独立して実行されるように、各タスクを並行して実行します。1つのタスクが失敗しても他のタスクの実行は停止されません。

このモードを使用する例として、フロントエンドとバックエンドサーバーの両方を起動する必要があるフルスタックプロジェクトの実行が挙げられます：

<Frame>
  <img src="https://mintcdn.com/replit/0ixNWaRF232g0Gwn/images/workflows/example-parallel-workflow.png?fit=max&auto=format&n=0ixNWaRF232g0Gwn&q=85&s=a1067b806b25e3f8722e5368fd87b48a" alt="並行ワークフローの例" width="721" height="654" data-path="images/workflows/example-parallel-workflow.png" />
</Frame>

## ワークフローの作成

ワークフローはWorkflowsペインの`+ New Workflow`ボタンをクリックして作成できます。まずワークフローに説明的な名前を付け、適切な実行モードを選択し、タスクを追加し始めます。タスクはドラッグ＆ドロップで希望の順序に並べ替えることができます。

<Frame>
  <img src="https://mintcdn.com/replit/9NKf1XREDj9JhKJb/images/workflows/example-workflow-setup.webp?fit=max&auto=format&n=9NKf1XREDj9JhKJb&q=85&s=deadd852b9ac26042147e7b8d597521d" alt="ワークフロー設定の例" width="720" height="414" data-path="images/workflows/example-workflow-setup.webp" />
</Frame>

## ワークフローをRunボタンに割り当てる

ワークフローをRunボタンに割り当てて、デフォルトのRunボタンの動作を置き換えることができます（[Replitアプリの設定](/references/project-setup/configuration)を参照）。`.replit`内で設定されたデフォルトの実行コマンドを維持するには、ドロップダウン内のデフォルトの「Run Replit App」オプションを選択します。

Runボタンの横のドロップダウンメニューで選択されたワークフローは、Runボタンをクリックしたときに実行されます。Runボタンで実行するワークフローを変更するには、ドロップダウンメニュー内の希望のワークフローをクリックします。

<Frame>
  <img src="https://mintcdn.com/replit/0ixNWaRF232g0Gwn/images/workflows/configure-run-button-workflow.gif?s=b93762a559fcb83f0b3560def5e965ef" alt="Runボタンのワークフロー設定" width="588" height="254" data-path="images/workflows/configure-run-button-workflow.gif" />
</Frame>

## ワークフロー出力の表示

ワークフローの出力は`Console`ペインに表示されます。最新の出力のみを表示するように切り替えたり、コンソールをすべてクリアしたりできます。

<Frame>
  <img src="https://mintcdn.com/replit/9NKf1XREDj9JhKJb/images/workflows/workflow-output-view.gif?s=3b33df7f4f6e0f43e7ae2c83532c4f96" alt="ワークフロー出力ビュー" width="706" height="434" data-path="images/workflows/workflow-output-view.gif" />
</Frame>
