Skip to main content

リリースフェーズによる ToDo の実行

学習の目的

この単元を完了すると、次のことができるようになります。

  • リリースフェーズタスクの設定方法を説明する。
  • リリースに関連する活動とログの確認方法を説明する。

リリースフェーズを使用する

必要に応じてリリースフェーズを使用すると、リリースが本番にリリースされる前にタスクを実行できます。

ユースケース

このフェーズでよく実行されるタスクとして次のようなものがあります。

  • CSS、JS、その他のアセットをコンテンツ配信ネットワーク (CDN) または AWS S3 バケットに送信する。
  • キャッシュストアを準備または無効化する。
  • データベーススキーマの移行を実行する。

リリースフェーズタスクを指定する

アプリケーションでリリースプロセスを使用し、one-off dyno でリリースフェーズタスクを実行できます。タスクを指定するには、アプリケーションの Procfile に追加します。release プロセスタイプと実行するコマンドをファイルに追加します。

たとえば、Django app の場合、次のようにデータベース移行をファイルに指定します。


release: python manage.py migrate

Docker イメージを Heroku にリリースする場合、詳細はリリースフェーズを Container Registry で使用する方法を参照してください。

リリースフェーズ実行のタイミング

リリースフェーズタスクは、リリースがアドオンの設定変数への変更によって生じた場合を除き、各新規リリースで実行されます。次のすべてのイベントでリリースが作成されます。

  • 成功したアプリケーションのビルド
  • 設定変数値の変更
  • パイプライン昇格
  • ロールバック
  • プラットフォーム API 経由のリリース
  • 新規アドオンのプロビジョニング

リリースフェーズが正常に終了するまで、アプリケーション dyno が新規リリースに対して開始することはありません。リリースフェーズタスクが失敗すると、新規リリースはリリースされません。 

リリースをロールバックする

バグのあるコードを本番にリリースした場合、git revert を使用して関連するコード変更をローカルで元に戻し、再リリースします。

誤設定やその他の Heroku プラットフォーム固有の問題でリリースのロールバックが必要な場合は、heroku rollback コマンドを使用します。次のコマンドでは、アプリケーションが前の v40 リリースにロールバックされます。

heroku rollback v40

Rolled back to v40

リリース番号を指定しないと、アプリケーションは 1 リリースだけロールバックされます。

heroku rollback コマンドで新規リリースが作成されます。このリリースはコンパイルされたスラッグとロールバック先リリースの設定変数をコピーします。

メモ

注意:

ロールバックしたリリースでの実行は、問題のあるリリースに対する一時的な修復措置です。できるだけ早く問題の修正をコミットし、Heroku にプッシュしてください。

リリース状況を確認する

リリースの状況 (リリースが失敗したり、リリースフェーズの長時間実行が原因で保留になったりした場合を含む) を確認するには、heroku releases を実行します。

heroku releases

=== example-app Releases - Current: v52

v53  Deploy ad7c527 release command failed        example@heroku.com

v52  Deploy b41eb7c                               example@heroku.com

v51  Deploy 38352d3                               example@heroku.com

heroku releases:output コマンドを使用して特定のリリースフェーズ実行の出力を確認します。

heroku releases:output v40

--- Migrating db ---

INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.

INFO  [alembic.runtime.migration] Will assume transactional DDL.

リリースログを確認する

アプリケーションの [Activity (活動)] タブからリリースに関連付けられたログにアクセスします。表示するリリースの横にある [View release log (リリースログの表示)] をクリックします。 

成功したビルドとリリースが表示されている Heroku アプリケーションの活動フィード。

リソース 

無料で学習を続けましょう!
続けるにはアカウントにサインアップしてください。
サインアップすると次のような機能が利用できるようになります。
  • 各自のキャリア目標に合わせてパーソナライズされたおすすめが表示される
  • ハンズオン Challenge やテストでスキルを練習できる
  • 進捗状況を追跡して上司と共有できる
  • メンターやキャリアチャンスと繋がることができる