AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

GithubActions に pin がきてた

ピン

github.blog

Workflow をピン付けする機能がきていた。

んだけど、もっと根本的に UI の表示をカスタマイズしたい気持ちがある。 最低限罫線入れたりとか、 disable になった workflow は <summary> などで隠せるようにするとかそういう。

とはいえ無いものはしゃーないので、配られた手札でなんとか以下のようにして運用している。

Workflow の管理

(記号)(0-9)(aA-zZ)(あいうえおかきくけこさしすせそ...)

みたいな一般的な実装でソートされるので、今アサインされている案件では以下のようなルールで名前を作って、GithubActions 上の UI 表示を制御している。

ファイル名

ウチは RailsJava 、ところにより PHP という風情なので、 ${env} 部については基本的に RAILS_ENV の想定に従っている。

結合 検証 本番 その他
intg stg prod demo,review などなど

YAML の拡張子とかじゃないけど、文字数揃えろ、という声はあったんですが、その他の ENV が生まれて「どうでもよくない?」という雰囲気を作れたので、わりと通りが良い感じでやっています。

${prefix}-${domain}-${env}.yml
deploy-example_com-prod.yml
deploy-backend-example_com-prod.yml
deploy-frontend-example_com-prod.yml
UI 上の Name

太古の VirtualHost のコンフィグをホストごとに分けたときにどう管理するか、みたいな時代まで遡った感じですが。

名前の先頭に 0x0 みたいにして連番にすることで、なにか挟みたい Workflow が生まれても連番で 9 個まで追加できるので「まあそんな生まれないだろ」という見立てでやっています。

#010: 統合
#020: 検証
#030: 本番

name: "030 [本番環境] Deploy *.example.com"

どういうことかというと

こんな感じになります。

GithubActions 上の表示

.github/workflows/deploy-prod.yml
name: "030 [本番環境] Deploy to example.com"

on:
  workflow_dispatch:

permissions:
  id-token: write
  contents: read

env:
  ECR_REGISTRY: ${{secrets.PROD_AWS_ECR_REGISTRY}}
  ECR_REPOSITORY: ${{secrets.PROD_AWS_ECR_REPOSITORY}}
  IMAGE_TAG: latest

jobs:

...