Secret Ninja Blog

Support Engineering Manager してます

Treasure WorkflowのGithub Actionsを公開してみた

Treasure Workflow (Digdag)のコードをGithub上で管理し、MasterにPushされたタイミングでCIを使ってTreasure Workflowにプッシュできると、Github上でコードが一元管理でき、見通しがよくなります。 Github Actionsを使うことで、Treasure Wokflowに簡単にデプロイすることができるので、簡単なActionsを作成してMarketplaceに公開してみました。

Treasure Workflow · Actions · GitHub Marketplace · GitHub

Actionsの概要

Githubで管理しているTreasure Workflowのリポジトリが一つのプロジェクトとして、MasterにPushされた際に自動でTreasure Workflowにデプロイされます。また、td wf check (digdag check)をpush前に実行しているので、何か構文エラーがなどがあればGithub Actionsが失敗します。

使い方

1 - コード管理に使用するリポジトリを作成し、Workflowを配置する

例: https://github.com/toru-takahashi/tdw-actions-sample/tree/master

2 - Actionsから"Setup this workflow"を選択する

f:id:toru-takahashi:20191230170700p:plain

3 - Github ActionsのYAMLを編集する

name: Treasure Workflow Deploy

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1
    - name: Treasure Workflow
      uses: toru-takahashi/treasure-workflow-actions@v0.0.2
      with:
        # Treasure Workflow API Endpoint
        td_wf_endpoint: api-workflow.treasuredata.com
        # Treasure Data Master API
        td_master_apikey: ${{ secrets.td_master_apikey }}
        # Treasure Workflow Project Name
        td_wf_project_name: workflow

上記をPushすると自動でGithub Actionsが起動されます。 しかし、上記コードで利用されているSecretsを登録していないため、このままだとエラーになるかと思います。

f:id:toru-takahashi:20191230171312p:plain

4 - Secretsを登録する

GithubのUIからSettings > Secretsにて、td_master_apikeyを追加します。

f:id:toru-takahashi:20191230171653p:plain

これで先ほど失敗したタスクを再実行すると正常に実行され、Treasure DataのUIからもWorkflowというプロジェクトが参照できるようになります。

f:id:toru-takahashi:20191230171827p:plain

f:id:toru-takahashi:20191230171958p:plain