質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Yarn

Yarnは、Facebook/Exponent/Google/Tildeが開発したJavaScriptのパッケージマネージャ。npmよりもインストールが速く、厳密にモジュールのバージョンを固定できるなど、npmの問題を解決。npmと互換性があり、同じpackage.jsonを使用できます。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

受付中

RSpecテストがローカルでは成功するがcircleCIでエラーになるため解決したい

hinata_hakumai
hinata_hakumai

総合スコア3

Yarn

Yarnは、Facebook/Exponent/Google/Tildeが開発したJavaScriptのパッケージマネージャ。npmよりもインストールが速く、厳密にモジュールのバージョンを固定できるなど、npmの問題を解決。npmと互換性があり、同じpackage.jsonを使用できます。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0回答

0評価

0クリップ

783閲覧

投稿2021/11/23 15:57

前提・実現したいこと

投稿アプリを作成しています。ローカルでは問題なくテストが通るのですが、circleCI上ではエラーが発生してしまうため、アドバイスをいただければと思います。

発生している問題・エラーメッセージ

circleCIを実行したところ下記エラーが発生します。

Failure/Error: <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> ActionView::Template::Error: Webpacker can't find application.js in /home/circleci/**************/src/public/packs-test/manifest.json. Possible causes: 1. You want to set webpacker.yml value of compile to true for your environment unless you are using the `webpack -w` or the webpack-dev-server. 2. webpack has not yet re-run to reflect updates. 3. You have misconfigured Webpacker's config/webpacker.yml file. 4. Your webpack configuration is not creating a manifest. Your manifest contains: { }

https://qiita.com/k-mashi/items/fdf7c962dbf95e0a55fa 
URLを参考にして.circleci/config.ymlにyarn installを追加しました。

ruby

- run: name: yarn install command: yarn install - run: name: webpack install command: bundle exec bin/webpack

追加したのですが、別のエラーが発生しました。

ruby

yarn install v1.22.15 [1/4] Resolving packages... [2/4] Fetching packages... info fsevents@2.3.2: The platform "linux" is incompatible with this module. info "fsevents@2.3.2" is an optional dependency and failed compatibility check. Excluding it from installation. info fsevents@1.2.13: The platform "linux" is incompatible with this module. info "fsevents@1.2.13" is an optional dependency and failed compatibility check. Excluding it from installation. [3/4] Linking dependencies... warning " > webpack-dev-server@4.2.1" has unmet peer dependency "webpack@^4.37.0 || ^5.0.0". warning "webpack-dev-server > webpack-dev-middleware@5.1.0" has unmet peer dependency "webpack@^4.0.0 || ^5.0.0". [4/4] Building fresh packages... error /home/circleci/**************/src/node_modules/node-sass: Command failed. Exit code: 1 Command: node scripts/build.js Arguments: Directory: /home/circleci/**************/src/node_modules/node-sass Output: Building: /usr/local/bin/node /home/circleci/**************/src/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library= gyp info it worked if it ends with ok gyp verb cli [ gyp verb cli '/usr/local/bin/node', gyp verb cli '/home/circleci/**************/src/node_modules/node-gyp/bin/node-gyp.js', gyp info using node-gyp@3.8.0 gyp info using node@16.13.0 | linux | x64 gyp verb command rebuild [] gyp verb command clean [] gyp verb clean removing "build" directory gyp verb command configure [] gyp verb check python checking for Python executable "python2" in the PATH gyp verb `which` failed Error: not found: python2 gyp verb `which` failed python2 Error: not found: python2 gyp verb `which` failed at getNotFoundError (/home/circleci/**************/src/node_modules/which/which.js:13:12) gyp verb `which` failed at F (/home/circleci/**************/src/node_modules/which/which.js:68:19) gyp verb `which` failed at E (/home/circleci/**************/src/node_modules/which/which.js:80:29) gyp verb `which` failed at /home/circleci/**************/src/node_modules/which/which.js:89:16 gyp verb `which` failed at /home/circleci/**************/src/node_modules/isexe/index.js:42:5 gyp verb `which` failed at /home/circleci/**************/src/node_modules/isexe/mode.js:8:5 gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:198:21) { gyp verb `which` failed code: 'ENOENT' gyp verb `which` failed } gyp verb check python checking for Python executable "python" in the PATH gyp verb `which` failed Error: not found: python gyp verb `which` failed at getNotFoundError (/home/circleci/**************/src/node_modules/which/which.js:13:12) gyp verb `which` failed at F (/home/circleci/**************/src/node_modules/which/which.js:68:19) gyp verb `which` failed at E (/home/circleci/**************/src/node_modules/which/which.js:80:29) gyp verb `which` failed at /home/circleci/**************/src/node_modules/which/which.js:89:16 gyp verb `which` failed at /home/circleci/**************/src/node_modules/isexe/index.js:42:5 gyp verb `which` failed at /home/circleci/**************/src/node_modules/isexe/mode.js:8:5 gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:198:21) gyp verb `which` failed python Error: not found: python gyp verb `which` failed at getNotFoundError (/home/circleci/**************/src/node_modules/which/which.js:13:12) gyp verb `which` failed at F (/home/circleci/**************/src/node_modules/which/which.js:68:19) gyp verb `which` failed at E (/home/circleci/**************/src/node_modules/which/which.js:80:29) gyp verb `which` failed at /home/circleci/**************/src/node_modules/which/which.js:89:16 gyp verb `which` failed at /home/circleci/**************/src/node_modules/isexe/index.js:42:5 gyp verb `which` failed at /home/circleci/**************/src/node_modules/isexe/mode.js:8:5 gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:198:21) { gyp verb `which` failed code: 'ENOENT' gyp verb `which` failed } gyp ERR! configure error gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable. gyp ERR! System Linux 4.15.0-1115-aws gyp ERR! command "/usr/local/bin/node" "/home/circleci/**************/src/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library=" gyp ERR! cwd /home/circleci/**************/src/node_modules/node-sass gyp ERR! node -v v16.13.0 gyp ERR! node-gyp -v v3.8.0 gyp ERR! not ok Build failed with error code: 1 info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

エラーコードからnode.jsとnode-sassのバージョンの互換性を疑いnodeのバージョンを確認しました。次に、dockerのコンテナ内でnode --version を実行し、v12.22.5を確認。
"node-sass": "^6.0.1"だったので、yarn why node-sassを実行し、で対応しているバージョンを特定しました。

yarn why v1.22.15 [4/4] Calculating file sizes... => Found "node-sass@4.14.1" info Reasons this module exists - "@rails#webpacker" depends on it - Hoisted from "@rails#webpacker#node-sass" info Disk size without dependencies: "6.32MB" info Disk size with unique dependencies: "14.7MB" info Disk size with transitive dependencies: "27.14MB" info Number of shared dependencies: 74

yarn upgrade node-sass@4.14.1を実行し、ダウングレードしたのですがエラーに変化なく行き詰まっています。

該当のソースコード

ruby

.circleci/config.yml version: 2.1 orbs: ruby: circleci/ruby@1.1.2 heroku: circleci/heroku@1.2.3 jobs: build: docker: - image: circleci/ruby:2.7-node working_directory: ~/portfolio/src steps: - checkout: path: ~/portfolio - ruby/install-deps - run: name: yarn install command: yarn install - run: name: webpack install command: bundle exec bin/webpack rubocop: working_directory: ~/portfolio/src docker: - image: circleci/ruby:2.7-node steps: - checkout: path: ~/portfolio-fuji - ruby/install-deps - restore_cache: keys: - v1-dependencies-{{ checksum "Gemfile.lock" }} - v1-dependencies- - run: bundle install - save_cache: paths: - ./vendor/bundle key: v1-dependencies-{{ checksum "Gemfile.lock" }} - run: name: Rubocop command: bundle exec rubocop rspec: docker: - image: circleci/ruby:2.7-node - image: circleci/mysql:5.5 environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: app_test MYSQL_USER: root environment: BUNDLE_JOBS: "3" BUNDLE_RETRY: "3" APP_DATABASE_HOST: "127.0.0.1" RAILS_ENV: test NODE_ENV: test working_directory: ~/portfolio-fuji/src steps: - checkout: path: ~/portfolio - ruby/install-deps - run: name: Database setup command: bundle exec rails db:migrate - run: name: Run rspec command: bundle exec rspec deploy: docker: - image: circleci/ruby:2.7-node steps: - checkout - setup_remote_docker: version: 19.03.13 - heroku/install - run: name: heroku login command: heroku container:login - run: name: push docker image command: heroku container:push web -a $HEROKU_APP_NAME - run: name: release docker image command: heroku container:release web -a $HEROKU_APP_NAME - run: name: database setup command: heroku run bundle exec rake db:migrate RAILS_ENV=production -a $HEROKU_APP_NAME workflows: version: 2 build_rubocop_rspec_and_deploy: jobs: - build - rspec - rubocop - deploy: requires: - build - rspec - rubocop filters: branches: only: main

ruby

Dockerfile FROM ruby:2.7 ENV RAILS_ENV=production RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ && apt-get update -qq \ && apt-get install -y nodejs yarn mariadb-client WORKDIR /app COPY ./src /app RUN bundle config --local set path 'vendor/bundle' \ && bundle install COPY start.sh /start.sh RUN chmod 744 /start.sh CMD ["sh", "/start.sh"]

補足情報(FW/ツールのバージョンなど)

MacOS
docker
RSpec
Ruby
Ruby on Rails

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Yarn

Yarnは、Facebook/Exponent/Google/Tildeが開発したJavaScriptのパッケージマネージャ。npmよりもインストールが速く、厳密にモジュールのバージョンを固定できるなど、npmの問題を解決。npmと互換性があり、同じpackage.jsonを使用できます。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです