Skip to content
Last updated

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

TD Workflows は Git などのバージョン管理ツールや CircleCI などの継続的インテグレーションツールと併用できます。このチュートリアルでは、GitHub と CircleCI を使用して継続的デプロイパイプラインをセットアップする方法を説明します。

前提条件

GitHub リポジトリ

まだ行っていない場合は、ワークフロープロジェクトを含む git リポジトリを GitHub に作成します。Git と GitHub の使用方法の詳細については、GitHub Bootcamp を参照してください。

CircleCI の設定

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

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 設定ドキュメントを参照してください。

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)