Skip to content

Set AUTH for Staging apps in Heroku Review #409

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
May 13, 2019
Merged

Conversation

yasulab
Copy link
Member

@yasulab yasulab commented Apr 2, 2019

Heroku Review Apps がうまく動くか試してみます 🔧 💨

Fix #369: Heroku Review Apps を coderdojo.jp でも使いたい

@yasulab yasulab temporarily deployed to coderdojo-japan-pr-409 April 2, 2019 08:16 Inactive
@yasulab yasulab temporarily deployed to coderdojo-japan-pr-409 April 2, 2019 08:22 Inactive
@yasulab yasulab temporarily deployed to coderdojo-japan-pr-409 April 2, 2019 08:54 Inactive
@yasulab yasulab temporarily deployed to coderdojo-japan-pr-409 April 2, 2019 09:07 Inactive
@yasulab
Copy link
Member Author

yasulab commented Apr 23, 2019

@AnaTofuZ もしよかったらこの Heroku Review Apps + Auth 対応の PR をお願いできると嬉しいです... (>人<;)💦

@AnaTofuZ
Copy link
Member

@yasulab このタスクでうまく行ってないのってHeroku側で症状が出てる感じですか?
(見た感じCIもコケてそうな印象を受けたので...!)

@yasulab
Copy link
Member Author

yasulab commented May 13, 2019

このタスクでうまく行ってないのってHeroku側で症状が出てる感じですか?

@AnaTofuZ ですね! と言いつつちょっと古いので記憶が曖昧で恐縮ですが、ローカル環境ではうまく動いていたかなと記憶しています! 💭 ✅

@AnaTofuZ
Copy link
Member

heroku側を見に行ってみます 👀

@AnaTofuZ
Copy link
Member

@AnaTofuZ ですね! と言いつつちょっと古いので記憶が曖昧で恐縮ですが、ローカル環境ではうまく動いていたかなと記憶しています! 💭 ✅

なるほど! ローカルと何か差分が発生していそうな気配を感じているので、色々見てみます!

@yasulab
Copy link
Member Author

yasulab commented May 13, 2019

(>人< )✨(>人< )✨(>人< )✨

@AnaTofuZ
Copy link
Member

AnaTofuZ commented May 13, 2019

  • Heroku側の環境変数を確認し、Authにログインしようとしたら以下の画面が出ました
    スクリーンショット 2019-05-13 17 29 54

  • おそらくこれが不具合では...!? 🤔

@AnaTofuZ
Copy link
Member

AnaTofuZ commented May 13, 2019

やること

  • herokuにアクセするするCLIツールの用意
  • 先のアクセス時のログの確認
  • 該当する箇所のバグの検討
  • 実装
  • commit/pushして修正できているかの確認

@AnaTofuZ
Copy link
Member

AnaTofuZ commented May 13, 2019

ログの一部
``` 2019-05-13T08:35:34.525200+00:00 app[web.1]: I, [2019-05-13T17:28:05.561430 #4] INFO -- : [41bf0d29-96b2-47b7-8c99-60a1d605c831] Started GET "/" for 133.13.48.132 at 2019-05-13 17:28:05 +0900 2019-05-13T08:35:34.525201+00:00 app[web.1]: I, [2019-05-13T17:28:05.562646 #4] INFO -- : [41bf0d29-96b2-47b7-8c99-60a1d605c831] Processing by HomeController#show as HTML 2019-05-13T08:35:34.525204+00:00 app[web.1]: I, [2019-05-13T17:28:05.665825 #4] INFO -- : [41bf0d29-96b2-47b7-8c99-60a1d605c831] Completed 500 Internal Server Error in 103ms (ActiveRecord: 72.0ms | Scrivito: 0.0ms) 2019-05-13T08:35:34.525206+00:00 app[web.1]: F, [2019-05-13T17:28:05.666414 #4] FATAL -- : [41bf0d29-96b2-47b7-8c99-60a1d605c831] 2019-05-13T08:35:34.525207+00:00 app[web.1]: F, [2019-05-13T17:28:05.666463 #4] FATAL -- : [41bf0d29-96b2-47b7-8c99-60a1d605c831] ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "dojos" does not exist 2019-05-13T08:35:34.525208+00:00 app[web.1]: LINE 8: WHERE a.attrelid = '"dojos"'::regclass 2019-05-13T08:35:34.525210+00:00 app[web.1]: ^ 2019-05-13T08:35:34.525211+00:00 app[web.1]: : SELECT a.attname, format_type(a.atttypid, a.atttypmod), 2019-05-13T08:35:34.525212+00:00 app[web.1]: pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, 2019-05-13T08:35:34.525213+00:00 app[web.1]: c.collname, col_description(a.attrelid, a.attnum) AS comment 2019-05-13T08:35:34.525214+00:00 app[web.1]: FROM pg_attribute a 2019-05-13T08:35:34.525216+00:00 app[web.1]: LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum 2019-05-13T08:35:34.525217+00:00 app[web.1]: LEFT JOIN pg_type t ON a.atttypid = t.oid 2019-05-13T08:35:34.525218+00:00 app[web.1]: LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation 2019-05-13T08:35:34.525219+00:00 app[web.1]: WHERE a.attrelid = '"dojos"'::regclass 2019-05-13T08:35:34.525221+00:00 app[web.1]: AND a.attnum > 0 AND NOT a.attisdropped 2019-05-13T08:35:34.525222+00:00 app[web.1]: ORDER BY a.attnum 2019-05-13T08:35:34.525223+00:00 app[web.1]: ): 2019-05-13T08:35:34.525224+00:00 app[web.1]: F, [2019-05-13T17:28:05.666494 #4] FATAL -- : [41bf0d29-96b2-47b7-8c99-60a1d605c831] 2019-05-13T08:35:34.525225+00:00 app[web.1]: F, [2019-05-13T17:28:05.666533 #4] FATAL -- : [41bf0d29-96b2-47b7-8c99-60a1d605c831] app/models/dojo.rb:14:in `block in ' 2019-05-13T08:35:34.525226+00:00 app[web.1]: [41bf0d29-96b2-47b7-8c99-60a1d605c831] app/models/dojo.rb:35:in `active_dojos_count' 2019-05-13T08:35:34.525227+00:00 app[web.1]: [41bf0d29-96b2-47b7-8c99-60a1d605c831] app/controllers/home_controller.rb:3:in `show' 2019-05-13T08:35:34.525229+00:00 app[web.1]: I, [2019-05-13T17:28:10.352810 #4] INFO -- : [47e0f4c4-f441-4562-a633-81d8fa1931e2] Started GET "/" for 133.13.48.132 at 2019-05-13 17:28:10 +0900 2019-05-13T08:35:34.525230+00:00 app[web.1]: I, [2019-05-13T17:28:10.354031 #4] INFO -- : [47e0f4c4-f441-4562-a633-81d8fa1931e2] Processing by HomeController#show as HTML 2019-05-13T08:35:34.525231+00:00 app[web.1]: I, [2019-05-13T17:28:10.357586 #4] INFO -- : [47e0f4c4-f441-4562-a633-81d8fa1931e2] Completed 500 Internal Server Error in 3ms (ActiveRecord: 1.6ms | Scrivito: 0.0ms) 2019-05-13T08:35:34.525232+00:00 app[web.1]: F, [2019-05-13T17:28:10.358121 #4] FATAL -- : [47e0f4c4-f441-4562-a633-81d8fa1931e2] 2019-05-13T08:35:34.525233+00:00 app[web.1]: F, [2019-05-13T17:28:10.358160 #4] FATAL -- : [47e0f4c4-f441-4562-a633-81d8fa1931e2] ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "dojos" does not exist 2019-05-13T08:35:34.525241+00:00 app[web.1]: LINE 8: WHERE a.attrelid = '"dojos"'::regclass 2019-05-13T08:35:34.525242+00:00 app[web.1]: ^ 2019-05-13T08:35:34.525244+00:00 app[web.1]: : SELECT a.attname, format_type(a.atttypid, a.atttypmod), 2019-05-13T08:35:34.525245+00:00 app[web.1]: pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, 2019-05-13T08:35:34.525246+00:00 app[web.1]: c.collname, col_description(a.attrelid, a.attnum) AS comment 2019-05-13T08:35:34.525247+00:00 app[web.1]: FROM pg_attribute a 2019-05-13T08:35:34.525248+00:00 app[web.1]: LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum 2019-05-13T08:35:34.525249+00:00 app[web.1]: LEFT JOIN pg_type t ON a.atttypid = t.oid 2019-05-13T08:35:34.525250+00:00 app[web.1]: LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation 2019-05-13T08:35:34.525251+00:00 app[web.1]: WHERE a.attrelid = '"dojos"'::regclass 2019-05-13T08:35:34.525252+00:00 app[web.1]: AND a.attnum > 0 AND NOT a.attisdropped 2019-05-13T08:35:34.525253+00:00 app[web.1]: ORDER BY a.attnum 2019-05-13T08:35:34.525254+00:00 app[web.1]: ): 2019-05-13T08:35:34.525255+00:00 app[web.1]: F, [2019-05-13T17:28:10.358198 #4] FATAL -- : [47e0f4c4-f441-4562-a633-81d8fa1931e2] 2019-05-13T08:35:34.525257+00:00 app[web.1]: F, [2019-05-13T17:28:10.358228 #4] FATAL -- : [47e0f4c4-f441-4562-a633-81d8fa1931e2] app/models/dojo.rb:14:in `block in ' 2019-05-13T08:35:34.525258+00:00 app[web.1]: [47e0f4c4-f441-4562-a633-81d8fa1931e2] app/models/dojo.rb:35:in `active_dojos_count' 2019-05-13T08:35:34.525259+00:00 app[web.1]: [47e0f4c4-f441-4562-a633-81d8fa1931e2] app/controllers/home_controller.rb:3:in `show' 2019-05-13T08:35:34.525260+00:00 app[we ```

ログを見た感じ、「Authのエラーではなくて、ReviewApps作成時にDBにseedが設定されておらず、dojo_count で破滅している」気がする...!

@yasulab
Copy link
Member Author

yasulab commented May 13, 2019

Authのエラーではなくて、ReviewApps作成時にDBにseedが設定されておらず、dojo_count で破滅している

なるほどあり得る...!?!? 🙈💦

@AnaTofuZ
Copy link
Member

確かDBのセットアップに関しては bin/setup内で systemが叩かれて実行されているんですよね
cf.

system! 'bin/rails db:setup'

HerokuReviewAppの作成時をトリガーにして、特定の処理を走らせるみたいな機能があれば解決しそうです。もしくは既にあるDBにアクセスするようにしてしまう...?(そんな事が可能?)

@AnaTofuZ
Copy link
Member

もしくはDBにアクセスした際に、なかったら例外受け取って回避するみたいな機構を実装する世界かな・・・ :thinking_face:

@AnaTofuZ
Copy link
Member

ログみた感じSELECT文で死んでそうなので

@dojo_count = Dojo.active_dojos_count

このあたりで死んでいそうな気がする・・・

@yasulab
Copy link
Member Author

yasulab commented May 13, 2019

Heroku Review Apps 作成時に Seed を流すようにするといいのかなー🤔💭

@AnaTofuZ
Copy link
Member

それかDBコピってくる運用かな・・・と思って雑に検索してみました。

DBをコピーしてくる方法がstackoverflowで見つかったので、これ使うかな・・・と思っています
https://stackoverflow.com/questions/33293169/heroku-review-apps-copy-db-to-review-app
(jsonでタスクが書ければseedを流せると思うので、そちらも調べてみます)

@yasulab
Copy link
Member Author

yasulab commented May 13, 2019

🆒d( ̄  ̄)✨

@AnaTofuZ
Copy link
Member

stack overflowの上の記事を見ると

  "scripts": {
    "postdeploy": "pg_dump $STAGING_DATABASE_URL | psql $DATABASE_URL && bundle exec rake db:migrate"
  },

といかにも scripts の中に postdeploy を書けば任意のコマンドを実行できそうな気配を感じたので、このあたりのjsonを調べます

@AnaTofuZ
Copy link
Member

ドキュメントを見た感じ

ということがわかったので、jsonを編集してえいやっとします

 #369 の際に、review appsの作成時にアクセスできない状況が発生した。
review appsでアプリを作成した際に、DBの初期設定を行っていなかったのが原因と思うので
app.jsonに初期設定のコマンドを追加した
cf. https://devcenter.heroku.com/articles/app-json-schema#scripts
@AnaTofuZ
Copy link
Member

scriptsにコマンドをガッと書いてcommit pushしたので、うまくログインできればOKかな・・・

@AnaTofuZ
Copy link
Member

build log見た感じ使われている気配がない...! 😢
(一回mergeしないと行けない仕様だったような気が... 🤔 )

@yasulab
Copy link
Member Author

yasulab commented May 13, 2019

@AnaTofuZ 試しに Merge しちゃってもいいです Yo...!! 👍 ✨ (もし不具合が起きたら rollback して Rollback 王を狙いましょう 🤣)

cf. サーバーが落ちてもすぐ復帰!ロールバック方法を押さえよう - Qiita:Team
https://yasslab.qiita.com/shared/items/97865815c6efa0def90e

@AnaTofuZ AnaTofuZ merged commit 23c1085 into master May 13, 2019
@yasulab yasulab deleted the test-review-app branch May 13, 2019 11:50
@AnaTofuZ
Copy link
Member

ありがとうございます!!

「Rollback 王に俺はなる!!!!」
ということでmergeしてみました!

@AnaTofuZ
Copy link
Member

一旦これで検証用PRか、今のPRでステージングを再構築する形で確認してみます

@yasulab
Copy link
Member Author

yasulab commented May 13, 2019

「Rollback 王に俺はなる!!!!」
ということでmergeしてみました!

🤣🆒✨

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Heroku Review Apps を coderdojo.jp でも使いたい
2 participants