GitHub GitHub Actions CI/CD GitHub Actions のあれこれ 実行ブランチの取得とrun-name
workflow_dispatch の実行ブランチをgithub.ref_name
で取得できる run-name
で Web 上の表示を動的にする 実行結果
input.yaml name : foo
run-name : Deploy to ${{ inputs.application }} by @${{ github.actor }}
on :
workflow_dispatch :
inputs :
application :
type : choice
description : Application
options :
- foo
- bar
jobs :
example :
runs-on : ubuntu-latest
steps :
- name : echo branch
run : echo ${{ github.ref_name }}
workflow_run workflow_run
は workflow が終わった後に発火するもの。キャッシュや通知、後処理に使われる。
workflow_run のon.workflow_run.workflows
では workflow のname
を指定する必要がある run-name
は指定できない fo*
のような曖昧な文字列も対応 workflow_run.yaml name : workflow_run
on :
workflow_run :
workflows :
- foo
- fo*
types : [ completed ]
jobs :
on-requested :
runs-on : ubuntu-20.04
if : ${{ github.event.workflow_run.conclusion == '' }}
steps :
- run : echo 'requested'
on-success :
runs-on : ubuntu-20.04
if : ${{ github.event.workflow_run.conclusion == 'success' }}
steps :
- run : echo 'success'
on-failure :
runs-on : ubuntu-20.04
if : ${{ github.event.workflow_run.conclusion == 'failure' }}
steps :
- run : echo 'failure'
workflow_run で直前の workflow の inputs の情報を取得しようとしたができなかった。github-acript とGitHub REST API を見てみたがそれらしい情報はなかった。
name : workflow_run2
on :
workflow_run :
workflows :
- foo
- fo*
types : [ completed ]
jobs :
echo-workflow-info :
name : echo-workflow-info
runs-on : ubuntu-20.04
steps :
- uses : actions/github-script@v6
with :
script : |
core.info(JSON.stringify(context.payload))
artifact に出力すると workflow を跨いだ変数共有ができそう だが、それやるならcomposite action
やworkflow_call
で明示的に値渡すのでいいなと思った。
nginx や redis, DB などのリソースを使う GitHub Actions から DB や nginx に接続できるようになる。
services :
nginx :
image : nginx
# Map port 8080 on the Docker host to port 80 on the nginx container
ports :
- 8080:80
redis :
image : redis
# Map TCP port 6379 on Docker host to a random free port on the Redis container
ports :
- 6379/tcp
https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idservices
2024-01-06 23:44:00 2023-01-03 02:14:26