yamlの認知コストが高すぎて辛い
yaml自体が辛いという話もあるが、yamlを採用する側も悪い
そんな高度な設定を書きたいならyamlを使うな、というのがある
辛いところ
読みづらい
全てが key/value なフォーマットなので、どこが重要なのかがパッと見で認識しづらい
補完が効かない
型が弱い
valueに指定すべきフォーマットがわからない
なんか漏れがある時に気づきづらい
参照の解決を人間がしないといけない
go to definitionできない
他ファイルを参照するくせに飛べない
${{ }}, ref, name, id, ラベル一致など
こういう長い参照も壊れやすく気づきづらい
code:yaml
if: steps.check.outputs.exists == 'true'
~がnullを意味するの意味不明
下記は全部同じらしい
code:yaml
key: ~
key: null
key: Null
key:
yamlでロジックを書かせるな
code:yaml
jobs:
build:
if: env.SKIP_BUILD != 'true'
runs-on: ubuntu-latest
steps:
- run: echo "SKIP_BUILD=true" >> $GITHUB_ENV
アホすぎる
こういうのを書きたいなら、そもそもyamlを採用するな
github actions側が採用してしまったことで、ユーザ全員がそれを書かざるを得なくなる
testやlinterを必須で用意しておかないと、
修正→デプロイして確認
みたいになって、めちゃくちゃサイクルが長くなる