Skip to main content
サービスのデプロイ時に自動生成されるGitHub Actionsワークフローを適用して、簡単にデプロイを自動化できます。

シークレットの設定

エールとGitHubの通信のためのシークレット設定が必要です。
GitHub Settings > Developer settings > Personal access tokens(classic) に移動し、Generate new token(classic)をクリックします。
次の画面でrepoadmin:public_key権限を付与してトークンを生成します。
Expiration設定期間が切れるとワークフローが動作しません。
生成されたトークン値を保管します。
スペース設定の認証ページで新しいAPI キーを生成でキーを生成し、保管します。
GitHubリポジトリの Settings / Secrets and variables / ActionsNew repository secretをクリックします。
Name値に注意しながら2つのRepository secretを作成します。
NameSecret
ALE_TOKEN         エール API key
GHP_TOKEN         GitHub Personal Access Token

GitHub Actionsの適用

Workflow内容確認

Github Actionsを適用したいサービスページのCLIタブでGithub Actionsセクションのコードをコピーします。

Workflow作成

プロジェクトのルートディレクトリに.github/workflowsディレクトリを作成し、エールからコピーしたコードを内容とするyamlファイルを作成します。
.github/workflowsは規定のパスのため変更できませんが、ファイル名は自由に設定できます。

アクション別の入力値

GitHub ActionsはエールがリポジトリをプルできるようにするGitHubリポジトリのDeploy Keyを設定するconnectアクションと、デプロイ設定をエールに送信してデプロイを要求するdeployアクションで動作します。
入力値必須 / デフォルト値
tokenクラウドタイプAPI Key必須
ghtokenGitHub Personal Token必須
endpointエールAPI Endpoint必須 (https://app.[ドメイン]/api)
scope接続するスペース名デフォルト:API Key使用者スペース名
repoGitHubリポジトリ(形式 user/repo)デフォルト:現在Action実行リポジトリ
readOnly        ‘true’設定で読み取り専用デプロイキー生成        デフォルト:false
入力値必須 / デフォルト値
tokenクラウドタイプAPI Key必須
endpointエールAPI Endpoint必須 (https://app.[ドメイン]/api)
projectデプロイするプロジェクト名必須 (スペース/プロジェクト)
stageデプロイする環境名デフォルト:プロジェクト内デフォルト環境
allStages’true’に設定するとすべての環境にデプロイデフォルト:false
repoGitHubリポジトリ(形式 user/repo)現在のアクションが実行中のリポジトリ
fileデプロイ設定ファイルのリポジトリ位置デフォルト:.ale/app.yaml
jsonデプロイ設定JSONテキスト-
yamlデプロイ設定yamlテキスト-
file、json、yaml入力値のうち1つの設定は必須です。

活用

自動生成されたworkflowファイルをサービス設定に合わせて修正して活用できます。
pathにデプロイするディレクトリを設定できます。
context:
git:
...
path: /pathname    
yamlファイルにリソースに関する内容がない場合、ダッシュボードで設定したリソースを反映します。yamlファイルでリソースを管理したい場合、resourcesspotcpumemorydiskreplicasを設定して適用できます。
...
yaml: |
  name: springboot-crud-example
  app: java@17
  resources:
    spot: false
    cpu: 1
    memory: 1.5
    replicas: 2
...
ダッシュボードで環境変数を設定してデプロイした場合、CLIタブのworkflowファイル内容に自動的に反映されます。yamlファイルに手動で適用したい場合、options.envにnameとvalueを配列形式で設定して適用できます。
...
yaml: |
  name: springboot-crud-example
  app: java@17
  options:
    ports: 8080
    env:
      - name: JAVA_OPTS
        value: -Xms256m -Xmx512m
      - name: SPRING_PROFILES_ACTIVE
        value: dev
...
プロジェクトにシークレットを登録している場合、value値をシークレット名で参照できます。
options.portsでカンマ(,)でポートを区切って最大3つのポートまで設定可能です。
...
yaml: |
  name: springboot-crud-example
  app: java@17
  options:
    ports: 8080, 8081, 8082
...
I