
# AutoShip概要

AutoFix は壊れないプルリクエストを作成するよう最適化されていますが、意図しない実行時の影響がないことを確認するために、本番相当の環境で変更をテストする必要があります。そのため、AutoFix によって作成されたプルリクエストをリリースするにはかなりの時間がかかることがあります。必要な作業は次のとおりです:

1. CI/CD の結果を確認する
2. テスト環境にデプロイする
3. テスト環境で新しいエラー／リグレッションがないことを確認する
4. 何も壊れていないことを確認するテストを実施する

これらのテストが完了したら、プルリクエストは安全に本番へリリースできます。

AutoShip は、このプロセスを自動化するために、すべての実行時システムと統合します。AutoShip はプルリクエスト上のラベルを元に開始します。ラベルが追加されると、AutoShip はプルリクエストをリリースする処理を開始します。

<figure><img src="https://help.aikidogov.us/_assets/09e13d49e04b/image-416.png" alt=""><figcaption></figcaption></figure>

## はじめに

次へ移動します： [AutoShip](https://app.aikido.dev/autoship) Aikido の UI で、まずグローバル設定を行います。書き込み権限、トリガーに使うラベル、デプロイ先の環境を指定してください。CI/CD、監視、アラートの統合を接続したら、リポジトリごとに AutoShip を有効化し始めることができます。各リポジトリごとに、使用する CI/CD と、AutoShip がデプロイすべき環境を設定する必要があります。各環境ごとに、リグレッションを検出するための監視情報の場所と、その環境に対してどのようにスモークテストを行うかを指定できます。

### グローバル設定

On the [AutoShip > 統合ページ](https://app.aikido.dev/autoship/settings) AutoShip で使用する統合を設定できます：

<figure><img src="https://help.aikidogov.us/_assets/183a79809961/image-444.png" alt=""><figcaption></figcaption></figure>

#### AutoShip の書き込み権限

対応： **GitHub**, **GitLab**, **BitBucket** と **Azure DevOps**.

GitHub では、書き込みアクセスは次を通じて提供されます： `Aikido AutoShip` GitHub アプリを通じて提供されます。このアプリは `Aikdio AutoFix` GitHub アプリとは別です。AutoFix を有効にするリポジトリと、AutoShip を有効にするリポジトリを個別に設定できます。

GitLab、BitBucket、Azure DevOps では、リポジトリにアクセスするために AutoShip は個人アクセストークン、サービスアカウントトークン、または同等のものを必要とします。

#### トリガーラベル

AutoShip は、指定されたラベルを持つプルリクエストでトリガーされます。デフォルトのラベルは `autoship`.

BitBucket はラベルをサポートしていないため、デフォルトでは AutoShip は次を含むプルリクエストを対象にします： `@autoship` PR の説明内にあります。ラベルが変更された場合、AutoShip は次でトリガーされます： `@<label>` .

#### CI/CD

AutoShip は CI/CD システムに接続して、ビルドが通っているかを確認します。ビルドに問題が発生すると、AutoShip がそれを修正し、修正をプルリクエストのブランチにプッシュします。

グローバル設定で CI/CD システムを接続します。多くの場合、API キーが必要です。システムごとの詳細は [CI/CD](https://help.aikidogov.us/docs/docs-ja/autoship/ci-cd) 各システムの詳細についてはページを参照してください。現在サポートしているものは次のとおりです：

* GitHub Actions
* GitLab CI
* BitBucket Pipelines
* Azure Pipelines
* CircleCI

リポジトリの設定時に、リポジトリごとの追加設定を指定できます。

#### 監視

環境へのデプロイが成功すると、AutoShip は監視システムのデータを確認して、新しいエラーがないことを検証します。リグレッションが検出された場合、AutoShip は変更をロールバックします。

グローバル設定で監視システムを接続します。多くの場合、API キーが必要です。システムごとの詳細は [監視](https://help.aikidogov.us/docs/docs-ja/autoship/monitoring) 各システムの詳細についてはページを参照してください。現在サポートしているものは次のとおりです：

* Sentry
* CloudWatch

リポジトリの設定時に、リポジトリごとの追加設定を指定できます。

#### アラート

AutoShip は進行状況を随時お知らせします。これは Slack を通じて行えます。AutoShip はデプロイごとにスレッドを作成し、進捗メッセージを投稿します:

<figure><img src="https://help.aikidogov.us/_assets/dc9c1f1eda79/image-417.png" alt=""><figcaption></figcaption></figure>

### リポジトリ設定

統合を構成したら、各リポジトリでそれらを有効にする必要があります。

<figure><img src="https://help.aikidogov.us/_assets/331b47fe2a68/image-418.png" alt=""><figcaption></figcaption></figure>

#### CI/CD

このリポジトリで使用する CI/CD システムを選択してください。追加の設定は不要です。

#### 環境

AutoShip がデプロイする環境を定義します。複数の環境へ順番にデプロイできます。たとえば、本番環境へデプロイしてテストする前に、まずステージング環境へデプロイしてテストできます。

これはリポジトリごとに設定できます。重要なリポジトリでは、本番へデプロイする前にステージング環境へデプロイし、手動で確認することをお勧めします。

<figure><img src="https://help.aikidogov.us/_assets/d36c2ecd2447/image-419.png" alt=""><figcaption></figcaption></figure>

環境設定では、次を指定できます：

* **AutoShip がこの環境へどのようにデプロイするか。** これらは自由記述の指示です。例: `PR ブランチを staging ブランチにマージする`.
* **AutoShip が機能をどのようにテストするか。** ここでは、どのドメインをテストするか、そのドメインへの認証方法、テスト方法に関する自由記述の指示を指定します。例: `商品をカートに追加し、チェックアウトページに表示されていることを確認する`. [スモークテストに関する詳細情報。](https://help.aikidogov.us/docs/docs-ja/autoship/smoke-testing)
* **AutoShip がリグレッションをどのように検出するか。** このリポジトリと環境で使用される監視システムを AutoShip に指定します。例: staging のサービスに対する CloudWatch ログの場所。

#### アラート

AutoShip の進行状況について通知を受け取りたい Slack チャンネルを指定します。

### AutoShip の IP アドレス

CI/CD および監視ツールが次の IP アドレスからのアクセスを許可していることを確認してください:

* `18.200.42.253`
* `52.51.229.214`
* `52.214.244.18`
* `18.202.209.180`
* `52.50.198.227`
* `52.51.98.186`

Smoke Testing の IP アドレスは次で確認できます [こちら](https://help.aikidogov.us/docs/docs-ja/autoship/smoke-testing).

### 試してみましょう！

指定したラベル（例: autoship）をプルリクエストに追加します。

* Aikido AutoShip アプリが GitHub のチェックに表示されます
* Slack メッセージが投稿されます
