サービスのデプロイ時に自動生成されるGitHub Actionsワークフローを適用して、簡単にデプロイを自動化できます。
エールとGitHubの通信のためのシークレット設定が必要です。
GitHub Personal access tokenの発行
GitHub Settings > Developer settings > Personal access tokens(classic) に移動し、Generate new token(classic)
をクリックします。
次の画面でrepo
、admin:public_key
権限を付与してトークンを生成します。
Expiration
設定期間が切れるとワークフローが動作しません。生成されたトークン値を保管します。
エール API Keyの発行
スペース設定の認証ページで新しいAPI キーを生成
でキーを生成し、保管します。
上記のシークレットをGitHubリポジトリのActions Secretとして設定
GitHubリポジトリの Settings / Secrets and variables / Actions で New repository secret
をクリックします。
Name値に注意しながら2つのRepository secretを作成します。
Name | Secret |
---|---|
ALE_TOKEN | エール API key |
GHP_TOKEN | GitHub Personal Access Token |
Github Actionsを適用したいサービスページのCLIタブでGithub Actionsセクションのコードをコピーします。
プロジェクトのルートディレクトリに.github/workflows
ディレクトリを作成し、エールからコピーしたコードを内容とするyamlファイルを作成します。
.github/workflows
は規定のパスのため変更できませんが、ファイル名は自由に設定できます。GitHub ActionsはエールがリポジトリをプルできるようにするGitHubリポジトリのDeploy Keyを設定するconnectアクションと、デプロイ設定をエールに送信してデプロイを要求するdeployアクションで動作します。
connectアクションの入力値
入力値 | 必須 / デフォルト値 | |
---|---|---|
token | クラウドタイプAPI Key | 必須 |
ghtoken | GitHub Personal Token | 必須 |
endpoint | エールAPI Endpoint | 必須 (https://app.[ドメイン]/api) |
scope | 接続するスペース名 | デフォルト:API Key使用者スペース名 |
repo | GitHubリポジトリ(形式 user/repo) | デフォルト:現在Action実行リポジトリ |
readOnly | ‘true’設定で読み取り専用デプロイキー生成 | デフォルト:false |
deployアクションの入力値
入力値 | 必須 / デフォルト値 | |
---|---|---|
token | クラウドタイプAPI Key | 必須 |
endpoint | エールAPI Endpoint | 必須 (https://app.[ドメイン]/api) |
project | デプロイするプロジェクト名 | 必須 (スペース/プロジェクト) |
stage | デプロイする環境名 | デフォルト:プロジェクト内デフォルト環境 |
allStages | ’true’に設定するとすべての環境にデプロイ | デフォルト:false |
repo | GitHubリポジトリ(形式 user/repo) | 現在のアクションが実行中のリポジトリ |
file | デプロイ設定ファイルのリポジトリ位置 | デフォルト:.ale/app.yaml |
json | デプロイ設定JSONテキスト | - |
yaml | デプロイ設定yamlテキスト | - |
自動生成されたworkflowファイルをサービス設定に合わせて修正して活用できます。
サブディレクトリの設定
pathにデプロイするディレクトリを設定できます。
リソースの変更
yamlファイルにリソースに関する内容がない場合、ダッシュボードで設定したリソースを反映します。yamlファイルでリソースを管理したい場合、resourcesにspot
、cpu
、memory
、disk
、replicas
を設定して適用できます。
環境変数の設定
ダッシュボードで環境変数を設定してデプロイした場合、CLIタブのworkflowファイル内容に自動的に反映されます。yamlファイルに手動で適用したい場合、options.envにnameとvalueを配列形式で設定して適用できます。
サービス対象ポート
options.portsでカンマ(,)でポートを区切って最大3つのポートまで設定可能です。