kiyomasa05
@kiyomasa05 (きよま)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

circleCiを使ってherokuにrailsアプリをデプロイしたい

解決したいこと

現在、ポートフォリオをRailsでapiを作成しており、circleciを使ってherokuへデプロイしたいと思っています。
しかし、何度試してもエラーになってしまいうまくいきません。

発生している問題・エラー

config.ymlの設定によってエラー文が異なります。

デプロイの定義を下記のみにした場合

- run:
          name: git push heroku master
          command: git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git master

スクリーンショット 2022-06-15 7.35.21.png

heroku loginせよ またはAPI keyで認証してくれとエラーが出て

デプロイの定義にheroku loginを追記すると

- run:
         name: heroku login
         command: heroku login
      - run:
          name: git push heroku master
          command: git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git master

スクリーンショット 2022-06-15 7.38.20.png

Heroku_API_KEYでログインできないとエラーになります。

Circle CI上で環境変数は設定しております
スクリーンショット 2022-06-15 7.48.25.png

該当するソースコード

circleci/config.yml
version: 2.1

orbs:
  ruby: circleci/ruby@1.4.0
  heroku: circleci/heroku@1.2.6

# jobの定義
jobs:
  build:
    docker:
      - image: cimg/ruby:3.0.0
    #githubのコードからコピー
    working_directory: ~/cooklog-api
    steps:
      - checkout:
          path: ~/cooklog-api
      #orbs:bundle installなどを実行するコマンド
      - ruby/install-deps

  test:
    docker:
      - image: cimg/ruby:3.0.0
      - image: cimg/mysql:8.0
        command: |
            mysqld --default-authentication-plugin=mysql_native_password
        environment:
        # databese.ymlに合わして設定する
          MYSQL_ROOT_PASSWORD: password
          MYSQL_DATABASE: cooklog_test
          MYSQL_ROOT_USER: root
    # testジョブ全体の環境変数
    environment:
      BUNDLE_JOBS: "3"
      BUNDLE_RETRY: "3"
      APP_DATABASE_HOST: 127.0.0.1
      RAILS_ENV: test
    working_directory: ~/cooklog-api
    # stepsで実行するJobを定義
    steps:
      - checkout:
          path: ~/cooklog-api
      - ruby/install-deps
      - run:
          name: Database setup
          command: bundle exec rake db:create db:migrate
      - run:
          name: test
          command: bundle exec rspec

  deploy:
    docker:
      - image: cimg/ruby:3.0.0
      # - auth:
      #   username: kiyoma
      #   password: $DOCKERHUB_PASSWORD
    steps:
      - checkout
      #dockerコマンドが使えるように
      - setup_remote_docker:
          version: 20.10.11
      - heroku/install
     
      - run:
          name: heroku login
          command: heroku login
      - run:
          name: git push heroku master
          command: git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git master
  

# 実行順
workflows:
  version: 2
  build_test_and_deploy:
    jobs:
      - build
      - test:
          requires:
            - build
      - deploy:
          requires:
            - test
          context:
            - cooklog-api
          filters:
            branches:
              only: master

heroku.ymlを使ってデプロイの設定はしています

heroku.yml

setup:
  addons:
    - plan: cleardb
  config:
    RACK_ENV: production
    RAILS_ENV: production
    RAILS_LOG_TO_STDOUT: enabled
    RAILS_SERVE_STATIC_FILES: enabled
build:
  docker:
    web: Dockerfile
  config:
    WORKDIR: app
run:
  web: bundle exec puma -C config/puma.rb

自分で試したこと

手元で手動でgit push heroku masterはできることを確認しています。
また、デプロイコマンドが悪いのかと思い、

-heroku/deploy-via-git

というコマンドも試してますが、スクリーンショット 2022-06-17 10.43.37.png

同様に認証できないと言われています。

かれこれ1週間ぐらい詰まってます。
初学者ゆえ、設定が悪いのか原因がつかめていません。

アドバイスなどいただけるとありがたいです。

参考記事
https://myownpace.netlify.app/circleci_heroku_doesnot_work/

0

No Answers yet.

Your answer might help someone💌