1
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を共通処理化して、呼び出し元に応じて異なるパラメータ値を渡す。

Posted at

workflow_call機能を利用することで、GitHub Actionを共通処理化できます。

name: Shared Process

on:
  workflow_call:

作成した共通処理のファイル名を、呼び出し元のuses:に記載することで共通処理を呼び出すことができます。

jobs:
  manual-job:
    uses: ./.github/workflows/shared_process.yml

また、このとき呼び出し元から共通処理に渡したいパラメータがある場合は、with:に記載することができます。

サンプルコード

【動作】
ある処理を手動実行とスケジュール実行の両方で実行可能にする。
このとき、共通処理に渡したいパラメータはそれぞれで異なる。

# shared_process.yml(共通処理)
# 呼び出し元から受け取った値を出力する
name: Shared Process

on:
  workflow_call:
    inputs:
      PARAMETER:
        type: string
 
env:
  PARAMETER: ${{ inputs.PARAMETER }}

jobs:
  echo-job:
    runs-on: ubuntu-latest
    steps:
      - name: actions test
        run: echo ${{ inputs.PARAMETER }}
# manual_execute.yml(手動実行)
# 画面入力値を共通処理に渡す
name: Manual Execute

on:
  workflow_dispatch:
    inputs:
      PARAMETER:
        required: true

jobs:
  manual-job:
    uses: ./.github/workflows/shared_process.yml
    with:
      PARAMETER: ${{ inputs.PARAMETER }}
# scheduled_execute.yml
# スケジュール実行パターンに応じて、指定した文字列を共通処理に渡す
name: Scheduled Execute

on:
  schedule:
    - cron: "*/5 * * * *" # 5分に1回
    - cron: "*/10 * * * *" # 10分に1回

jobs:
  scheduled-job:
    runs-on: ubuntu-latest
    outputs:
      PARAMETER: ${{ steps.set-parameter.outputs.PARAMETER }}
    steps:
      - name: Set environment variables
        id: set-parameter
        run: |
          if [[ "${{ github.event.schedule }}" == "*/5 * * * *" ]]; then
            echo "PARAMETER=スケジュール_5分毎" >> $GITHUB_OUTPUT
          elif [[ "${{ github.event.schedule }}" == "*/10 * * * *" ]]; then
            echo "PARAMETER=スケジュール_10分毎" >> $GITHUB_OUTPUT
          fi

  execute-job:
    needs: scheduled-job
    uses: ./.github/workflows/shared_process.yml
    with:
      PARAMETER: ${{ needs.scheduled-job.outputs.PARAMETER }}
  • 手動実行時
    image.png

  • スケジュール実行時
    image.png

1
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
1
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?