GitHub Actions
Job 間でデータを共有できる
Defining outputs for jobs - GitHub Docs
run: echo "key_name=world" >> "$GITHUB_OUTPUT" のように stdout に吐き出すと steps.stepname.outputs.key_name とアクセスできるらしい
複数環境にデプロイ
Using environments for deployment - GitHub Docs
job ごとにどの environment を使うかを指定できる
これはできないみたい。どこにも書いてない気がするけど
code:shell
jobs:
call-resuable-workflow:
uses: workflow
environment: production
これが参考になった
reusable workflow が environment 文字列を受け取る
Consuming Environment Secrets in Reusable Workflows | Colin’s ALM Corner
変数
Variables - GitHub Docs
$GITHUB_ENV に設定する
Workflow commands for GitHub Actions - GitHub Docs
env.NAME でアクセス
同一 job のそれ以降の step で参照可能
env に設定する
$NAME でアクセス
式
Expressions - GitHub Docs
Secrets
Encrypted secrets - GitHub Docs
workflow に environment を指定した状態だと、repository secrets が読めないとかある?
動作的にはそんな感じがするが、直感に反するし、ドキュメントにも記載はない
違った。reusable workflow には明示的に secrets を渡す必要があるみたい。あるいは secrets: inherit を指定する
Encrypted secrets - GitHub Docs
差分があったファイルに応じた処理をする
on で path filtering
ファイルが増える可能性あり
専用の actions あり
https://github.com/marketplace/actions/changed-files
Reusable workflow
Reusing workflows - GitHub Docs
Timeouts
Usage limits, billing, and administration - GitHub Docs
設定もできる