Deno Deploy を git integration に戻した
Deno Deploy を git integration に戻した
前回 GitHub Actionsに移行したが、その後おかしな挙動が続いたのでgit integrationに戻した。
起きた問題
previewとの2重起動疑惑
GitHub Actions移行後もcronがpreview modeで動いているような挙動があった。ドキュメントには「Deno cronはpreview modeで実行されない」と書かれているが、実態が怪しい。
Deno KVに is_preview フラグを持たせて実験したところ、やはりpreviewっぽい環境で動作していることが示唆された。
新機能がpreviewでしか動いていない
追加した新しいcronが動作しない問題が発生。--prod フラグをつけてデプロイしたはずなのに、productionのインスタンスに反映されていない可能性が浮上した(未調査)。
試しにgit integrationに戻したところ、新機能分のcronが未実行状態に戻るという挙動があった。これはつまり、GitHub Actions期間中はpreviewのインスタンスで動いており、production側は実は古いままだったのでは、という仮説につながる。
結論
Deno Deployの内部挙動はブラックボックスが多く、これ以上の調査が困難と判断してgit integrationに戻した。
--prod フラグをつけていても、実際にproductionとして動作しているかはDeno Deploy側の挙動に依存する。cronの実行状況など直接確認できる手段が限られており、問題の切り分けに時間がかかりすぎると判断した。
教訓
bot運用でDeno Deployを使うなら、preview deploymentを完全に無効化できるかを事前に確認しておくべきだった。git integrationでpreviewを切れない制約がある以上、そもそも今回の構成との相性が悪かったのかもしれない。