# CircleCI を使用したワークフローの継続的デプロイ TD Workflows は [Git](https://git-scm.com/) などのバージョン管理ツールや [CircleCI](https://circleci.com/) などの継続的インテグレーションツールと併用できます。このチュートリアルでは、GitHub と CircleCI を使用して継続的デプロイパイプラインをセットアップする方法を説明します。 ## 前提条件 * TD Workflows * [GitHub](https://github.com/) アカウント * [CircleCI](https://circleci.com/) アカウント ## GitHub リポジトリ まだ行っていない場合は、ワークフロープロジェクトを含む git リポジトリを GitHub に作成します。Git と GitHub の使用方法の詳細については、[GitHub Bootcamp](https://help.github.com/categories/bootcamp/) を参照してください。 ## CircleCI の設定 プロジェクトに CircleCI 設定ファイルを追加します。ファイル名は `config.yml` とし、`.circleci` というトップディレクトリに配置し、以下の内容を記述します。その後、コミットして GitHub にプッシュします。 ```yaml version: 2.1 executors: my_executor: docker: - image: ruby:2.7.2-buster jobs: digdag: executor: my_executor steps: - checkout - run: name: Setup command: | gem install td yes | td -e https://api.treasuredata.com -k dummy wf || true - run: name: Check config command: cd workflow && td wf check - run: name: Push project command: td -e https://api.treasuredata.com -k $TD_API_KEY wf push $WF_PROJECT -r `date -u +"%Y-%m-%dT%H:%M:%SZ"`-`git rev-parse HEAD` workflows: version: 2 build-n-deploy: jobs: - digdag # If you would like to restrict branches/tags to running Digdag jobs, use `filters` option. # Following filter means `digdag` job will run only `dev` and `user-` starting branches. # @see: https://circleci.com/docs/2.0/workflows/ # - digdag: # filters: # branches: # only: # - dev # - /user-.*/ ``` この設定では、CircleCI が `master` ブランチの変更のみをデプロイするように指定しています。これにより、他のブランチやプルリクエストの変更は `master` にマージされるまでデプロイされません。 CircleCI 設定の詳細については、[CircleCI 設定ドキュメント](https://circleci.com/docs/configuration/)を参照してください。 ## CircleCI の接続 1. CircleCI ダッシュボードを開きます。 2. 左側の Add Projects を選択します。 3. アカウントを選択します。TD Workflow プロジェクトを含む GitHub リポジトリがリストに表示されます。 4. 右側の Build Project を選択して、継続的デプロイパイプラインを開始します。 CircleCI はパイプラインの最初の実行を行いますが、TD 認証情報がまだ設定されていないため失敗します。 ## TD 認証情報の設定 ワークフローを Treasure Data にプッシュするには、プロジェクトに TD API Key を設定する必要があります。 1. CircleCI ダッシュボードを再度開きます。ワークフロープロジェクトが左側にリストされています。 2. ワークフロープロジェクトを選択します。 3. 右上の Project Settings を選択します。 4. 左側の Build Settings の下にある Environment Variables を選択します。 5. Name フィールドに `TD_API_KEY` を入力し、Value フィールドに TD API キーを入力します。 6. Save variables を選択します。 ## デプロイの開始 1. CircleCI ダッシュボードを再度開き、失敗したワークフロープロジェクトのビルドを選択します。 2. 右上の Rebuild を選択します。 CircleCI はワークフローを Treasure Data に正常にプッシュし、GitHub に変更をプッシュするたびにこれを実行します。 ## トラブルシューティング 以下のエラーが表示された場合は、エンドポイントに https:// を追加してください。 ``` error: RESTEASY004655: Unable to invoke request (processing) ```