メインコンテンツまでスキップ

コンテンツの更新時にGitHub Actionsを自動実行する

概要

このチュートリアルでは、コンテンツの更新時に GitHub Actionsを自動実行する方法を説明します。
手動でコンテンツを更新した場合のほか、承認ワークフローを利用した場合とAPIを使用してコンテンツを更新した場合についても説明します。

学べること

コンテンツの更新時にGitHub Actionsを実行方法を学びます。 流れは以下の通りです。

前提条件

備考

このページはKurocoとNuxt.jsでのプロジェクトが構築済みであり、コンテンツ一覧のページが作成されていることを前提としています。
まだ構築していない場合は、下記のチュートリアルを参照してください。
Kurocoビギナーズガイド
KurocoとNuxt.jsで、コンテンツ一覧ページを作成する

GitHub Workflowの設定

GitHubと接続し、リポジトリを設定すると、GitHubの設定画面は以下のようになります。

Image from Gyazo

注意

GitHub Actionsを実行するには、Kuroco管理画面のGitHubページでワークフローを設定する必要があります。設定されていない場合、コンテンツ更新時にワークフロー連携を有効にしていてもGitHub Actionsが実行されません。

ここでワークフローと対象ブランチを設定する必要があります。GitHubリポジトリに基づいて対応する項目を選択し、[更新する]をクリックしてください。

Image from Gyazo

GitHub Actionsを使用してコンテンツを作成する

[コンテンツ] -> [コンテンツ名] に移動して、[追加] をクリックして新しいコンテンツを作成します。

Image from Gyazo

ワークフローを「有効」にします。

Image from Gyazo

ワークフローを「有効」に設定してコンテンツを追加または更新すると、自動でGitHub Actionsが実行されます。

Image from Gyazo

ワークフローの設定を有効にして更新すると、次回更新時にもワークフローの設定はデフォルトで有効がチェックされた状態になります。

承認ワークフローを使用してコンテンツを作成する

GitHub Actionsは、コンテンツが更新されたときに自動的に実行されます。
承認ワークフローがそのコンテンツに設定されている場合は、すべてのグループが承認し、コンテンツが公開/更新されたときにGitHub Actionsが実行されます。

1. 承認ワークフローの作成

承認ワークフローを作成するには、サイドメニューで[オペレーション] -> [承認ワークフロー]に遷移します。ここで新しいワークフローを追加するか、既に作成されている場合は編集します。

Image from Gyazo

必要な情報を入力し、承認ワークフローを作成してください。

Image from Gyazo

2. フロー設定をする

コンテンツの作成/更新から公開までのフロー設定をします。

Image from Gyazo

フロー設定が完了したら、コンテンツの編集にすすみます。

3. 新しいトピックを作成する

[コンテンツ] > [コンテンツ名] に移動して、[追加] をクリックして新しいコンテンツを作成します。

Image from Gyazo

4. GitHubワークフローと承認ワークフローを設定する

コンテンツが公開された後にGitHub Actionsが実行されるようGitHubのワークフロー設定を有効にします。承認ワークフローの設定も合わせて実施します。

Image from Gyazo

5. コンテンツを更新する

コンテンツに承認フローワークフローが設定されている場合は承認待ちに移行します。

Image from Gyazo

6. GitHub Actionsが実行されることを確認する

Contentの設定後、GitHubアクションが実行されます。 GitHub の [アクション] タブで確認できます。

Image from Gyazo
Image from Gyazo

APIを使用してコンテンツを作成する

API経由でコンテンツが更新された場合でもGitHubアクションを実行するように設定できます。このチュートリアルでは簡単化のため、承認フローを使用せずにContents APIを使用します。

承認フローを使用したコンテンツの追加方法については、こちらを参照してください。

1. コンテンツ挿入APIの作成

サイドメニューからエンドポイント一覧のページに遷移します。追加をクリックし、以下のエンドポイントを追加します。

Image from Gyazo

設定
パスエンドポイントのパス。必要に応じて入力してください。
カテゴリー「コンテンツ」を選択します。
モデルTopics v1
オペレーションコンテンツで実行する操作を選択します。(insert or update)
topics_group_idコンテンツ定義IDを入力します。

2. リクエストを送信する

エンドポイントの動作はSwagger UIで確認します。
新しく作成したエンドポイントを選択して、[Try it out]をクリックします。
ここで、dispatch_github_workflowを1で渡すと、コンテンツが公開されたときにGitHub Actionsが実行されます。

承認ワークフローが使用されている場合、GitHub Actionsは承認ワークフローが完了した後に実行されます。 また、コンテンツが非公開に設定された場合や、後日公開されるように日時指定がされた場合、GitHub Actionsはコンテンツが公開されたときに実行されます。

このチュートリアルでは簡単化のため、open_flgを1で渡し、コンテンツを挿入するとすぐに公開されるようにします。これにより、コンテンツの追加時にすぐにGitHub Actionsが実行されます。

コンテンツの内容を入力し、[Execute]をクリックします。

Image from Gyazo

レスポンスでコンテンツが正常に追加されたことを確認します。

Image from Gyazo

コンテンツ一覧に遷移し、コンテンツが追加されていることを確認します。

Image from Gyazo

3. GitHub Actionsの実行を確認する

GitHubリポジトリのActionsタブに遷移すると、GitHub Actionsが実行されたことを確認できます。

Image from Gyazo


サポート

お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。