coderdojo.jp icon indicating copy to clipboard operation
coderdojo.jp copied to clipboard

Podcast 追加タスクを CI 内で実行して、タスクの実行し忘れを防ぐ

Open yasulab opened this issue 6 years ago • 0 comments

手順通りにやってれば大丈夫そうなので、優先度は低いです 😌 ✨

TL;DR

  • DojoCast への Podcast 追加方法 に沿って進めていくとダウンタイムが起こらない
  • うっかり 3.4. の手順が逆にすると (タスク実行前にmdファイルをpushしてしまうと) DojoCast の目次 および当該エピソードにアクセスできなくなる
  • ある特定の条件下で Rake タスクを実行するように CI に設定すると「うっかり」なときも安心 😌
    • 例: /public/podcasts 以下のファイルが更新されたら実行する 🔧🤖💨

「うっかり」時に発生する現象

  • 当該エピソードにアクセスできなくなる
    • これはそもそも周知していないので特に問題なさそう 🆗
  • 目次ページにアクセスできなくなる
    • 1エピソードがうまく動かないと全体がうまく動かないのは直しても良さそう...? 🤔💭

予期しないエラーが発生しました... 🙈 - CoderDojo Japan https://coderdojo.jp/podcasts

cc/ @chicaco @AnaTofuZ

「うっかり」時のエラー詳細

エラー詳細

このログみたいでした

2019-06-03T03:17:41.101379+00:00 heroku[router]: at=info method=GET path="/assets/fontawesome-webfont-2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe.woff2" host=coderdojo.jp request_id=e82f4616-0d54-4db3-81d8-dd9370ac4200 fwd="124.110.17.85" dyno=web.1 connect=0ms service=6ms status=200 bytes=77682 protocol=https 2019-06-03T03:17:46.438171+00:00 heroku[router]: at=info method=GET path="/img/favicon-32x32.png" host=coderdojo.jp request_id=7272a4c3-42fe-4ec6-9dbb-f2f6426a569e fwd="124.110.17.85" dyno=web.1 connect=0ms service=1ms status=200 bytes=2227 protocol=https 2019-06-03T03:17:46.793948+00:00 heroku[router]: at=info method=GET path="/manifest.json" host=coderdojo.jp request_id=e69384e4-ba50-4b95-b2f6-253ac88d6c6b fwd="124.110.17.85" dyno=web.1 connect=0ms service=2ms status=200 bytes=1277 protocol=https

ここで500が帰ってきてますね

2019-06-03T03:17:52.713384+00:00 heroku[router]: at=info method=GET path="/podcasts/13" host=coderdojo.jp request_id=33b167af-2514-4997-95b7-00b39f920683 fwd="111.239.164.151" dyno=web.1 connect=1ms service=18ms status=500 bytes=8991 protocol=https 2019-06-03T03:17:52.693519+00:00 app[web.1]: I, [2019-06-03T12:17:52.693411 #11] INFO -- : [33b167af-2514-4997-95b7-00b39f920683] Started GET "/podcasts/13" for 111.239.164.151 at 2019-06-03 12:17:52 +0900 2019-06-03T03:17:52.694987+00:00 app[web.1]: I, [2019-06-03T12:17:52.694909 #11] INFO -- : [33b167af-2514-4997-95b7-00b39f920683] Processing by PodcastsController#show as HTML 2019-06-03T03:17:52.695072+00:00 app[web.1]: I, [2019-06-03T12:17:52.694999 #11] INFO -- : [33b167af-2514-4997-95b7-00b39f920683] Parameters: {"id"=>"13"} 2019-06-03T03:17:52.698030+00:00 app[web.1]: D, [2019-06-03T12:17:52.697956 #11] DEBUG -- : [33b167af-2514-4997-95b7-00b39f920683] SoundCloudTrack Load (0.9ms) SELECT "soundcloud_tracks".* FROM "soundcloud_tracks" WHERE "soundcloud_tracks"."id" = $1 LIMIT $2 [["id", 13], ["LIMIT", 1]] 2019-06-03T03:17:52.699686+00:00 app[web.1]: I, [2019-06-03T12:17:52.699610 #11] INFO -- : [33b167af-2514-4997-95b7-00b39f920683] Rendering errors/500.html.haml within layouts/application 2019-06-03T03:17:52.706278+00:00 app[web.1]: I, [2019-06-03T12:17:52.706189 #11] INFO -- : [33b167af-2514-4997-95b7-00b39f920683] Rendered errors/500.html.haml within layouts/application (6.5ms) 2019-06-03T03:17:52.707270+00:00 app[web.1]: I, [2019-06-03T12:17:52.707199 #11] INFO -- : [33b167af-2514-4997-95b7-00b39f920683] Rendered shared/_footer.html.haml (0.1ms) 2019-06-03T03:17:52.707531+00:00 app[web.1]: I, [2019-06-03T12:17:52.707462 #11] INFO -- : [33b167af-2514-4997-95b7-00b39f920683] Completed 500 Internal Server Error in 12ms (Views: 9.0ms | ActiveRecord: 0.9ms | Scrivito: 0.0ms)

このあとアプリが再起動したらアクセス可能になったみたいですね

2019-06-03T03:25:16.764598+00:00 heroku[web.1]: Restarting 2019-06-03T03:25:16.787072+00:00 heroku[web.1]: State changed from up to starting 2019-06-03T03:25:16.441431+00:00 app[api]: Deploy 16e753e6 by user [email protected] 2019-06-03T03:25:16.441431+00:00 app[api]: Release v1052 created by user [email protected] 2019-06-03T03:25:17.595299+00:00 app[web.1]: [4] - Gracefully shutting down workers... 2019-06-03T03:25:17.584943+00:00 heroku[web.1]: Stopping all processes with SIGTERM 2019-06-03T03:25:17.736586+00:00 heroku[web.1]: Process exited with status 143 2019-06-03T03:25:21.771689+00:00 heroku[web.1]: Starting process with command bundle exec puma -C config/puma.rb

このあたりの処理が入るとアクセスできるようになってました

yasulab avatar Jun 03 '19 04:06 yasulab