【github action】再利用可能なワークフローとは??

【github action】再利用可能なワークフローとは??

 

github actionの勉強中

 

「再利用可能なワークフロー」

 

という単語?が出てきた

 

なんのことだろう

 

調べると、どうも一度作ったワークフロー(ymlファイル)

 

を別のワークフローから呼び出して使えるという便利機能のことらしい?

 

 

早速やってみた

 

 

・元のファイル・・・hoge.yml

・呼び出すファイル・・・call.yml

 

hoge.yml

name: 再利用のテスト




on: [push]




jobs:

call_test:

uses: ./.github/workflows/call.yml







call.yml

name: call test




on:

workflow_call:

jobs:

echo_test:

runs-on: ubuntu-latest

steps:

- name: test 再利用

run: echo '再利用されました'

 

これを実行してみると

 

 

githubの管理画面から確認すると

 

Run echo ‘再利用されました’

再利用されました

 

 

成功!!

呼び出したファイルのechoが実行されているのがわかる

 

これはわかりやすく言うと、関数のようなものと考えるとわかりやすい

関数と同じように、呼び出してどこからでも、何回でも再利用できる

 

 

 

●絶対パスで呼び出す

 

同じworkflow内なら

 

uses: ./.github/workflows/call.yml

 

で呼び出せるが、別のリポジトリのymlを使いたい時は別の書き方になる

 

書き方は

 

【githubアカウント】/【リポジトリ名】/.github/workflows/【ymlファイル名】@【ブランチ名】

 

となります。

 

私のgithubアカウントは:kyoka-kurimoto

 

リポジトリ名は:test

 

ymlファイル名は:call.yml

 

branch名は:main

 

なので、呼び出すときは

 

uses: kyoka-kurimoto/test/.github/workflows/call.yml@main

 

こうなります。

 

これを実際にpushしてみると

 

 

Run echo ‘再利用されました’

再利用されました

 

成功!!

 

 

 

●引数を渡してみる

 

再利用できるワークフローは関数と同じように引数を渡す事が出来ます。

 

試しに、「猫の名前」を引数として渡してみます。

 

hoge.yml

name: 再利用のテスト




on: [push]




jobs:

call_test:

uses: kyoka-kurimoto/test/.github/workflows/call.yml@main

with:

cat_name: "タマ"

 

call.yml

name: call test




on:

workflow_call:

inputs:

cat_name:

required: true

type: string

jobs:

echo_test:

runs-on: ubuntu-latest

steps:

- name: test 再利用

run: echo "再利用されました。猫の名前は${{ inputs.cat_name }}です。"

 

pushしてみると

 

 

 

Run echo “再利用されました。猫の名前はタマです。”

再利用されました。猫の名前はタマです。

 

成功!!

 

引数を渡す時は

 

with:

cat_name: "タマ"

 

withを付けて、引数名と値を入れる

 

引数を受け取る時は

 

inputs:

cat_name:

required: true

type: string

 

inputsの後に、受け取る引数名を入れて、requiredで必須かどうか、typeで型を指定する

あとは表示したい箇所に${{ inputs.cat_name }}

と書くと、引数の値が表示される

 

これは環境別の設定ファイルを作る時にかなり使えそう

 

 

コメント