0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

変数展開に失敗しCircleCIからHerokuへのpushに失敗した話

Posted at

目的

  • GitHubのmain(デフォルトブランチ)へpushしたらCircleCIが検知してHerokuへデプロイしてくれるようにする。

前提条件

  • GitHub,Herokuは登録済み
  • ローカル環境からGitHubへのgit pushは成功しCircleCIが検知してくれる環境は作成済み
  • HerokuのAPI_KEYやAPP_NAMEなどの環境変数はCircleCIに登録済み

事象

  • GitHubからCircleCIへのcheckoutは成功するがそこからHerokuへのpushが一向に成功しない。

失敗例1
CircleCI_to_Heroku_push_miss.PNG

失敗例2(変数展開は成功、別の要因でpushに失敗しているがそれは別記事で)
CircleCI_to_Heroku_push_miss2.PNG

両者とも失敗しているが違いは以下である。
失敗例1
fatal: Authentication failed for 'https://heroku:@git.heroku.com/.git/'
失敗例2
fatal: Authentication failed for 'https://heroku:************************************@git.heroku.com/*********************.git/'

原因

  • CircleCIのconfig.yml、contextの記述を忘れ変数展開に失敗し正しいURLでpush出来ていなかった。

Contextについて詳細はこちら

失敗例

..circleci/config.yml
workflows:
  heroku_deploy:
    jobs:
      - deploy
jobs:
  deploy:
    executor: heroku/default
    steps:
      - checkout
      - heroku/install
      - run: echo $HEROKU_API_KEY       # 変数展開に失敗し空白が出力される

解決策

成功例

..circleci/config.yml
workflows:
  heroku_deploy:
    jobs:
      - deploy:
          context: {コンテキスト名} # ここでコンテキストに紐づいた環境変数を明示しなければいけない。
jobs:
  deploy:
    executor: heroku/default
    steps:
      - checkout
      - heroku/install
      - run: echo $HEROKU_API_KEY      # 変数展開に成功しCircleCI上に設定された環境変数が出力される。

無事展開されpush出来た。(本当はもう少し別のとこでハマっているがそれはまた別の記事にする)
CircleCI_to_Heroku_push_success.PNG

所感

地獄、エラーメッセージにRun heroku login toとあるので認証が失敗しているのかと思いそっち方面で調査してしまい、異常なハマり方をしてしまった。
後、CircleCI + Heroku連携で「CircleCIでは変数を展開するためにContextを利用する」ということに言及している記事が見当たらずハマってしまった。
昔は別にContextを明示しなくてもそのまま展開できてた気がするのだがいつぞやから明示しないといけなくなった?
そのため当時の記事では特に言及していない?というところまで考えたが真相は謎。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?