CI/CD GitHub GitHub Actions GitHub Actions のあれこれ 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-script と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 間で値を共有できそうだ 。ただ、そのために artifact を使うより、composite actionやworkflow_callで明示的に値を渡す構成のほうがよいと感じた。
DB や nginx をサービスコンテナで起動する servicesに 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
Workflow syntax for GitHub Actions - jobs..services
2026-10-16 10:04:54 2023-05-20 17:25:09