0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub Actions - Actのイベントペイロード、環境変数等の指定

Posted at

内容

Github Actionsで実行される処理をローカルで行うことができるActのRunner(実行環境)で、
Actのイベントペイロード、環境変数等の指定方法について記載する

GitHubコンテキスト(github.xxx)の指定

調べた限りでは指定できないぽい

イベントペイロード(github.event.xxx)の指定

指定する値は、Webhook のイベントとペイロード参照

.github/act/event.json
{
  "action": "opened",
  "number": 100,
  "pull_request": {
    "head": {
      "ref": "sample-head-ref"
    },
    "base": {
      "ref": "sample-base-ref"
    }
  }
}

実行例

act -W .github/workflows/test.yml -j test -e .github/act/event.json

inputsの指定

workflow_call等のinputsの指定

.github/workflows/test.yml
on:
  workflow_call:
    inputs:
      pr_number:
        type: string
        required: true
      ref:
        required: true
        type: string
.github/act/event.json
{
  "inputs": {
    "pr_number": 100,
    "ref": "feature/test-branch"
  }
}

実行例

act -W .github/workflows/test.yml -j test -e .github/act/event.json

Environment variables(vars.xxx)の指定

.github/act/.vars
ACCOUNT_ID="1234567890"
REGION="ap-northeast-1"

実行例(ファイル指定)

act -W .github/workflows/test.yml -j test --var-file .github/act/.vars

実行例(値指定)

act -W .github/workflows/test.yml -j test --var VARIABLE=somevalue

Environment secrets(secrets.xxx)の指定

.github/act/.secrets
SECRETS_ARN="xxxxx"

実行例(ファイル指定)

act -W .github/workflows/test.yml -j test --secret-file .github/act/.secrets

実行例(値指定)

act -W .github/workflows/test.yml -j test --secret-file -s MY_SECRET=somevalue

以下のように値を指定しない場合は環境変数から参照される

act -W .github/workflows/test.yml -j test --secret-file -s MY_SECRET

GITHUB_TOKENの指定

実行例

act -W .github/workflows/test.yml -j test -s GITHUB_TOKEN="$(gh auth token)"

環境変数の指定

.github/act/.envs
AWS_ACCESS_KEY_ID="xxxxxx"
AWS_SECRET_ACCESS_KEY="yyyyyy"
AWS_SESSION_TOKEN="zzzzzz"

実行例

act -W .github/workflows/test.yml -j test --env-file .github/act/.envs

アクター(github.actor)の指定

実行例

act .github/workflows/test.yml -j test -a "dependabot[bot]"

env.ACTフラグ

Actから実行した場合、環境変数にACTが追加される

以下、AWS認証処理に利用した例
Actからの実行時はAWS認証をスキップし、
環境変数の指定で設定した認証情報でAWSアクセスするようにしている

runs:
  using: 'composite'
  steps:
    - name: AWS Credentials
      if: ${{ !env.ACT }}  # Actからの実行時はスキップ
      uses: aws-actions/configure-aws-credentials@v4
      with:
        aws-region: ${{ inputs.region }}
        role-to-assume: arn:aws:iam::${{ inputs.account_id }}:role/${{ inputs.role_name }}
        role-duration-seconds: 3600

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?