[Heroku]Upgrade this pipelineをしてみる

Other

できるようになること

・Review apps now has a public facing API.
・The app names generated by review apps are no longer predictable.
・Pull requests are no longer required
・The new version of review apps does not support parent apps – inherited configuration is specified in app.json or in the Pipeline’s configuration variables.
・Review apps can be enabled in multiple pipelines for the same repository

https://devcenter.heroku.com/articles/github-integration-review-apps#feature-changes

Google翻訳に少し補足したのがコチラ↓

・Review Appに公開APIが追加されました。
→ 理解していない

・Review Appによって生成されたアプリ名は予測できなくなりました。
→ [親の環境]-pr-1072 => [pipeline name?]-[ブランチ名]–[ランダム英数字]

・プルリクエストは不要になりました
→ branchから作成可能


・Review Appの新しいバージョンは親アプリをサポートしていません-継承された構成はapp.jsonまたはPipelineのConfig Varsで指定されます。
→ PipelineのSettingsタブでReview App, CI用のConfig Varsを設定可能

・Review Appは、同じリポジトリの複数のパイプラインで有効にできます。
→ 理解していない

今回、upgradeに踏み切った理由としては、review appで環境作成時に自動でdb:seedとテストデータ作成を実行したく、ドキュメントがupgrade後のものしかなかったため。

Review Appだけ別の変数で管理したいという要望が発生したため。

アップグレードの仕方

・PipelineのREVIEW APPSに表示されている Upgrade this pipeline をクリックする(別のところからもできるようなことも書いてあった)

その後に表示される設定は後でも変更できるので適当でいい。私は最後のチェックだけ入れた。

Automatically create review apps for new PRs
新しいPRがあったら自動でReviewAppを作成する
Wait for CI to pass
CIを待ってからReviewAppを作成するか
Destroy stale review apps automatically
自動的にReview Appを削除するか

Upgrade後の後処理(app.jsonの修正)

新しいReview appsは、作成元のAppに依存せず作る仕組みになった。Upgradeする人だと、Upgrade時に警告が表示されるが、環境変数に手を加える必要がある。
実際に変更しないでreview appを作成しようとすると、作成時にエラーが表示される。

設定方法は、下記の二通りある。

  • 画面(PipelineのSettingのReview app config vars)
  • app.json

CLIからもできる気がするけど言及されてないと思う。

AWSのsecret keyなど、特定の開発者にしか見られないようにする必要があるので、面倒だが画面から行う。結果、app.jsonのenvというkeyを全て消すことにした。

environmentsの部分は、上書きではなく、置き換え。下記のようなケースだと、env1は設定されずにenv2とenv3が設定される。

"env": {
   "env1": { value: "abc" }
},
"environments": {
  "test": {
    "env": {
      "env2": { value: "dfe" },
      "env3": { value: "ghi" }
    }
  }
}

app.jsonの仕様については下記を参照

app.json Schema | Heroku Dev Center
app.json is a manifest format for describing web apps. It declares environment variables, add-ons, and other information required to deploy and run an app on He...

どうでもいい総括

Branchから作成できるのは非常に便利。Herokuを使い込んでいる企業をあまり聞かないが、便利だと思う。

今回、app.jsonやreview appにきちんと向かい合えてよかった。

コメント