# Jenkins CIによるワークフローの継続的デプロイ TD Workflowsは、[Git](https://git-scm.com/)などのバージョン管理ツールや[Jenkins CI](https://jenkins.io/)などの継続的インテグレーションツールと一緒に使用できます。GitHubとJenkins CIを使用して継続的デプロイパイプラインを設定できます。 ## 前提条件 このチュートリアルには以下が必要です: * TD Workflows * [GitHub](https://github.com/)アカウント * [Jenkins CI](https://jenkins.io/)アカウント * JenkinsサーバーへのDigdagのインストール。Digdag [Getting Started](https://docs.digdag.io/getting_started.md#downloading-the-latest-version)を参照してください。 ## GitHubリポジトリ まだ行っていない場合は、ワークフロープロジェクトを含むGitリポジトリをGitHubに作成してください。GitとGitHubの使用方法の詳細については、[GitHub Bootcamp](https://help.github.com/categories/bootcamp/)を参照してください。 ## Jenkins CIの設定 JenkinsとGitHubの使用方法の詳細については、[Jenkinsドキュメント](https://jenkins.io/doc/tutorials/)を参照してください。 Jenkins設定の詳細については、[Jenkins設定ドキュメント](https://jenkins.io/doc/book/using/)を参照してください。 プロジェクトにJenkins CI設定ファイルを追加します。ファイルは`Jenkinsfile`という名前で、プロジェクトのトップディレクトリに配置し、以下の内容を含める必要があります。その後、コミットしてGitHubにプッシュしてください。 ```jenkins pipeline { agent { label 'master' } environment { TD_API_KEY = credentials('TD_API_KEY') } stages { stage('build') { steps { dir ('') { sh "td -e https://api.treasuredata.com wf push " } } } } } ``` ### TD認証情報の設定 ワークフローをTreasure Dataにプッシュするには、プロジェクト用のTD APIキーを設定する必要があります。 1. Jenkinsダッシュボードを開きます。 2. 左側のメインメニューから「Credentials」を選択します。 ![](/assets/image-20190830-212032.ca19994b7ea5bca49042e14504754ba3a46234f2ea02a1010fe33cfe2e039f67.2e4f387b.png) 1. APIキーをグローバル認証情報として追加する場合は、Credentialsの下でSYSTEMを選択します。 2. メイン中央メニューからGlobal credentials (unrestricted)を選択します。 3. Add Credentialsを選択します。 ![](/assets/image-20190830-211949.ccf6daa65e7e79b63577a28fcc5f20090323626861d6c10c4cf5706f1540ff19.2e4f387b.png) 1. Kindの下にある中央のドロップダウンメニューから、Secret Textを選択します。 ![](/assets/image-20190830-211921.3c7f5484bbe49a9e31f4cf5ffaec9d75b7e53510f34d40c47985915a08189552.2e4f387b.png) 7. すべての子アイテムでAPIキーを利用可能にするには、Globalスコープを選択します。 1. 実装の詳細に応じて、GlobalまたはSystemを選択します。 2. Secretフィールドに`TD_API_KEY`を入力し、IDフィールドにこの認証情報に使用する名前を入力します。 3. Save variablesを選択します。 ### デプロイの開始 1. Jenkinsダッシュボードを再度開き、ワークフロープロジェクトのビルドを選択します。 2. Build NOWを選択してワークフローを開始します。 JenkinsはワークフローをTreasure Dataにプッシュし、GitHubに変更をプッシュするたびにこれを実行します。 ## トラブルシューティング * 以下のエラーが表示された場合は、エンドポイントにhttps://を追加してください。 `error: RESTEASY004655: Unable to invoke request (processing)`