# Travis CIを使用したワークフローの継続的デプロイ

Treasure ワークフローは、[Git](https://git-scm.com/)などのバージョン管理ツールや[Travis CI](https://travis-ci.com/)などの継続的インテグレーションツールと一緒に使用できます。このチュートリアルでは、GitHubとTravis CIを使用して継続的デプロイパイプラインを設定する方法を説明します。

## 前提条件

* Treasure ワークフロー
* [GitHub](https://github.com/)アカウント
* [Travis CI](https://travis-ci.org/)アカウント


## GitHubリポジトリ

まだ行っていない場合は、ワークフロープロジェクトを含むgitリポジトリをGitHubに作成してください。GitとGitHubの使用方法の詳細については、[GitHub Bootcamp](https://help.github.com/categories/bootcamp/)を参照してください。

## Travis CIの設定

Travis CI設定ファイルをプロジェクトに追加します。ファイル名は`.travis.yml`とし、プロジェクトのトップディレクトリに配置し、以下の内容を記述します。その後、コミットしてGitHubにプッシュします。

```yaml
language: ruby
rvm:
  - 2.7.2

script:
  - gem install td
  - td -e https://api.treasuredata.com -k $TD_API_KEY wf check
  - td -e https://api.treasuredata.com -k $TD_API_KEY wf push $WF_PROJECT

branches:
  only:
    - master
```

この設定では、Travis CIが`master`ブランチの変更のみをデプロイするように指定しています。これにより、他のブランチやプルリクエストの変更は`master`にマージされるまでデプロイされません。

Travis CIの設定の詳細については、[Travis CIドキュメント](https://docs.travis-ci.com/user/for-beginners/)を参照してください。

## Travis CIの接続

1. [Travis-ci.com](https://travis-ci.com/)にアクセスし、[*Sign up with GitHub*](https://travis-ci.com/signin)を選択します。
2. Travis CIの認可を承認します。GitHubにリダイレクトされます。
3. 緑色の_Activate_ボタンを選択し、Travis CIで使用するリポジトリを選択します。


### TD認証情報の設定

ワークフローをTreasure Dataにプッシュするには、プロジェクトにTreasure APIキーを設定する必要があります。Travis CIでTreasure APIキーを設定する方法の詳細については、[こちら](https://docs.travis-ci.com/user/environment-variables/#defining-variables-in-repository-settings)を参照してください。

Travis CIプロジェクト内で変数を定義するには：

1. Repository Settingsから、ログインしていることを確認します。
2. 対象のリポジトリに移動します。
3. 歯車メニューからSettingsを選択します。
4. Environment VariablesセクションでAdd new variableを選択します。
5. Travis CIダッシュボードを再度開き、ワークフローリポジトリを見つけます。
6. ワークフロープロジェクトを選択します。
7. Repository Settingsを選択します。下矢印を選択してからSettingsを選択する必要がある場合があります。
8. Build SettingsのEnvironment Variablesを選択します。
9. Nameフィールドに`TD_API_KEY`と入力し、Valueフィールドにご自身のTreasure APIキーを入力します。
10. Save variablesを選択します。


### デプロイの開始

1. Travis CIダッシュボードを再度開き、失敗したワークフロープロジェクトのビルドを選択します。


これで、Travis CIはGitHubに変更をプッシュするたびに、ワークフローをTreasure Dataに正常にプッシュし、ワークフローとして実行するようになります。