1年前に作ったサービスで、クライアントさんから、値段部分の修正を依頼されました。
そのため4月に切り替わる時点でアップされるように、ローカルで準備を進めていました。
ちなみにローカルでは問題なく切り替わり、githubにもpushが完了。
3末日にさ、herokuにデプロイ!
git push origin heroku でものの数分で終わる作業なはずが
半日近く費やす結果になりました。
なぜかherokuにデプロイでエラーが出てしまいました。
随分久しぶりに動かしたのもあって諸々のアップデートが原因だったようですが、それに付随してのあれこれを記録がてら
herokuデプロイエラー
$git push heroku main
これで通常であれば、リモートリポジトリの最新のmainブランチのものがherokuに反映されるはずが
[Release/obj.target/binding/src/binding.o] Error 1
remote: gyp ERR! build error
remote: gyp ERR! stack Error: `make` failed with exit code: 2
remote: gyp ERR! stack at ChildProcess.onExit (/tmp/build_46f356a5/node_modules/node-gyp/lib/build.js:262:23)
remote: gyp ERR! stack at ChildProcess.emit (node:events:390:28)
remote: gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
remote: gyp ERR! System Linux 4.4.0-1101-aws
remote: gyp ERR! command "/tmp/build_46f356a5/bin/node" "/tmp/build_46f356a5/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
remote: gyp ERR! cwd /tmp/build_46f356a5/node_modules/node-sass
remote: gyp ERR! node -v v16.13.1
remote: gyp ERR! node-gyp -v v3.8.0
remote: gyp ERR! not ok
remote: Build failed with error code: 1
remote:
remote: !
remote: ! Precompiling assets failed.
remote: !
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: !
remote: ! ## Warning - The same version of this code has already been built: c251fdcb0b5443de6fa662fa699e4b65db4e3fe2
remote: !
remote: ! We have detected that you have triggered a build from source code with version c251fdcb0b5443de6fa662fa699e4b65db4e3fe2
remote: ! at least twice. One common cause of this behavior is attempting to deploy code from a different branch.
remote: !
remote: ! If you are developing on a branch and deploying via git you must run:
remote: !
remote: ! git push heroku <branchname>:main
remote: !
remote: ! This article goes into details on the behavior:
remote: ! https://devcenter.heroku.com/articles/duplicate-build-version
remote:
remote: Verifying deploy...
remote:
remote: ! Push rejected to herokuのapp名
remote:
To https://git.heroku.com/emu-project.git
! [remote rejected] main -> main (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/app名.git'
githubにはちゃんとリモートリポジトリには登録されたし、問題がないはず、、
ですがよく見ると、考えられるのは
- nodeがなんとか言ってる
- 違うブランチからじゃないの?と言われてる?
- git push heroku :mainやってみてと言ってる
webpackをアップデート
$yarn upgrade @rails/webpacker --latest
ひとまず。
アップデートしてみました。
$bundle update
$yarn upgrade --latest
諸々アップデートを完了しました。
アップデートしたのでまたcommitせねばなりませんので
$git add .
$git commit -m "コミット名"
$git push origin main
すると今度は
ERROR: Repository not found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
git hubのリポジトリが見つかりませんときました。
git push origin mainのエラーの解決
アップデートしたせいなのか、数日前は使えていたgithubのリポジトリにアップデートできなくなっていました。
原因は2点でした。
1.githubのsshキーの設定(長いこと変えてなかったので期限が切れていた)
2.アップデートした際なのか、リポジトリ名とurlがあってなかった。
です。
特に1のキーの設定は一度やったにもかかわらず、うまくいかなかったので、一度削除して
新たに作り直してみました。
https://zenn.dev/schnell/articles/0e1c2e9db5c08d
↑
ざっとみた限りこの記事が端的でわかりやすいかもです。
作成したkeyをgithubの設定の登録まで終わったら、
2のリポジトリの名前とurlが合っていないか確認。
$ git remote -v
こちらのurlとgithubのリモートリポジトリのsshの方のアドレスが違っていないか確認する。
(私はIDがなぜか抜けてしまっていました)
urlの修正は
$git remote set-url origin git@github.com:自分のgithub名/リモートリポジトリ名.git
これでもう一度git remote -vで名前が直っているか確認して
コミット、プッシュ、
そうすると無事githubのリポジトリに登録がされ、その後のherokuの方へも無事に
デプロイすることができました!
1年近く放置してたサイトでherokuにデプロイは完了したものの、今後はherokuのアップデートもしなくてはいけないし、、いわゆるホームページ的なサイトなのでWordpressなどで作成し直すかの提案を今後して行く必要があるかな、、と思ってます。(この辺りはクライアント様と応相談)
heroku、久々に触ったのでビクビクしてしまいました〜