プロジェクトリポジトリのGithubアクションを設定しています。
ワークフローは次のステップで構成されています。
ただし、私は2つの異なるKubernetesデプロイメントを使用しています。1つは開発用、もう1つは本番用です。したがって、2つのGithubアクションワークフローもあります。
開発用のGithubアクションワークフローは、コミットがプッシュされるたびにトリガーされます。
on:
Push:
branches:
- master
しかし、私はそれを自分の制作ワークフローに使いたくありません。 Send to productionボタンのような手動トリガーが必要です。私はそれの近くに何もドキュメントで見ませんでした。
Githubアクションでワークフローを手動でトリガーする方法はありますか?
Githubアクション、Docker、またはKubernetesのいずれかで、開発ワークフローと本番ワークフローを分割して、希望どおりの結果を得るにはどうすればよいですか?
現在のGithubアクションオファリングでこれを解決する別の方法は、デプロイが必要なときにマスターからproduction
ブランチを作成し、production
ブランチでデプロイアクションをトリガーすることです。 production
ブランチは基本的にmaster
のミラーです。
on:
Push:
branches:
- master
開発ビルド/プッシュは、マスターへのコミットがあるたびに発生する可能性があります。
on:
Push:
branches:
- production
リリーススケジュールのある時点で、PRをproduction
ブランチに上げることができます。これにより、prodのビルド/デプロイが処理されます。
詳細/説明のために編集されました
できることの1つは、repository_dispatch
を呼び出すことです。 repository_dispatch
here の使用に関するGitHubドキュメントを表示できます。
たとえば、次のようなGitHubアクションワークフローがあるとします。
on:
repository_dispatch:
types: [run_tests]
name: Run tests
jobs:
test:
name: Run your tests
runs-on: ubuntu-latest
steps:
- run: |
echo "I just ran all your tests!"
GitHub v3 APIドキュメント で説明されている手順に従って、リポジトリディスパッチイベントを作成できます。
まず、認証のためにGitHubで 個人アクセストークン(PAT)を作成 します。
次に、curl
を次のように実行できます。
curl \
-H "Authorization: token $YOUR_PAT" \
--request POST \
--data '{"event_type": "run_tests"}' \
https://api.github.com/repos/$USER/$REPOSITORY/dispatches
同時に、私が取り組んでいる小さなプロジェクトを、この正確な問題を解決する仲間と共有したかったのです。
ActionsPanelはこれと同じrepository_dispatch
APIを使用しますが、GitHub Appトークンを使用するため、独自のPATの管理について心配する必要はありません。これにより、複数のユーザーがいるチーム全体でアクションをトリガーするのがはるかに簡単になります。
ユーザーのリクエストとフィードバックに基づいて、repository_dispatch
の送信先のブランチを指定する機能が組み込まれています。また、アクションを実行するときにパラメーターを挿入する方法も組み込まれています。
リポジトリに残した宣言型のyamlファイルを使用してボタンを構成すると、ActionsPanelがそのファイルを読み取り、アクションをトリガーするためのUIを動的に作成します。