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

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

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

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

Ruby on Rails 6

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

Docker

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

Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

Q&A

解決済

1回答

1275閲覧

circleci×rails6でyarn: command not found

ryok8982

総合スコア0

Ruby

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

Ruby on Rails 6

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

Docker

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

Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

0グッド

0クリップ

投稿2021/04/23 14:26

前提・実現したいこと

rails6でポートフォリオを作成中です。
circleciと連携をとって開発を進めています
jqueryを導入しgit pushをした際にcircleci/config.yml内yarn installで以下のエラーが出ました。

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

Failure/Error: <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> ActionView::Template::Error: Webpacker can't find application.js in /home/circleci/project/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: { }

調べたところyarn、webpackの導入が必要とのことだったのでconfig.ymlに記載
すると次のエラー

#!/bin/bash -eo pipefail yarn install --cache-folder ~/.cache/yarn /bin/bash: yarn: command not found Exited with code exit status 127 CircleCI received exit code 127

該当のソースコード

circleci/config.yml

1version: 2.1 2 3orbs: 4 ruby: circleci/ruby@1.1.0 5 6jobs: 7 build: 8 working_directory: ~/app 9 docker: 10 - image: circleci/ruby:2.6.3-stretch 11 environment: 12 BUNDLER_VERSION: 2.2.15 13 steps: 14 - checkout 15 - ruby/install-deps 16 - restore_cache: 17 keys: 18 - app-bundle-v1-{{ checksum "Gemfile.lock" }} 19 - app-bundle-v1- 20 - run: 21 name: Bundler install 22 command: | 23 gem update --system 24 gem install bundler -v 2.2.15 25 - run: 26 name: Bundle Install 27 command: bundle check || bundle install 28 - save_cache: 29 key: app-bundle-v1-{{ checksum "Gemfile.lock" }} 30 paths: 31 - vendor/bundle 32 - restore_cache: 33 keys: 34 - rails-demo-yarn-{{ checksum "yarn.lock" }} 35 - rails-demo-yarn- 36 - run: 37 name: Yarn Install 38 command: yarn install --cache-folder ~/.cache/yarn 39 - run: 40 name: Database setup 41 command: bin/rails db:create db:schema:load --trace 42 - run: bundle exec bin/webpack 43 - run: 44 name: execute rspec 45 command: bundle exec rspec 46 - store_test_results: 47 path: /tmp/test-results 48

試したこと

config.ymlについていまいち理解が及んでなかったので1から作り直しましたが同様でした。
また、開発環境では問題なくyarnが使える状態で、アプリも正常に動いています。circle ciのみが通らない状況です。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

ずいぶん詰まりましたが、なんとか自力でテストを通せました。

config.yml

1- image: circleci/ruby:2.6.3-stretch

これをnodeを使うので

config.yml

1- image: circleci/ruby:2.6.3-node-browsers

に変更

するとyarn installは読み込むがnodeのバージョンでエラー
yarn installを変更

config.yml

1 - run: yarn install --ignore-engines 2 - run: bundle exec bin/webpack

次はmysqlでエラー
default mysql clientが必要なよう
以下を記載

config.yml

1    - run: 2 name: default mysql client install 3 command: | 4 sudo rm -rf /var/lib/apt/lists/* && sudo apt update 5 sudo apt-get install default-mysql-client 6 - run: 7 name: bundle Install 8 command: bundle install --path vendor/bundle

以上でなんとかsuccessになりました!おそらく見る人が見たらひどいのでしょうが
以下が最終的なコードです

config.yml

1version: 2.1 2 3orbs: 4 ruby: circleci/ruby@1.1.0 5 6jobs: 7 build: 8 working_directory: ~/my_app 9 docker: 10 - image: circleci/ruby:2.6.3-node-browsers 11 environment: 12 BUNDLER_VERSION: 2.2.15 13 steps: 14 - checkout 15 - ruby/install-deps 16 test: 17 docker: 18 - image: circleci/ruby:2.6.3-node-browsers 19 environment: 20 DB_HOST: 127.0.0.1 21 RAILS_ENV: test 22 BUNDLER_VERSION: 2.2.15 23 - image: circleci/mysql:8.0 24 command: --default-authentication-plugin=mysql_native_password 25 environment: 26 MYSQL_ALLOW_EMPTY_PASSWORD: 'true' 27 MYSQL_ROOT_HOST: '%' 28 steps: 29 - checkout 30 - ruby/install-deps 31 - run: mv config/database.yml.ci config/database.yml 32 - run: 33 name: default mysql client install 34 command: | 35 sudo rm -rf /var/lib/apt/lists/* && sudo apt update 36 sudo apt-get install default-mysql-client 37 - run: 38 name: bundle Install 39 command: bundle install --path vendor/bundle 40 - run: 41 name: Wait for DB 42 command: dockerize -wait tcp://localhost:3306 -timeout 1m 43 - run: yarn install --ignore-engines 44 - run: bundle exec bin/webpack 45 - run: bundle exec rake db:create 46 - run: bundle exec rake db:migrate 47 - run: bundle exec rake db:schema:load 48 # Run rspec in parallel 49 - run: 50 name: run tests 51 command: | 52 mkdir /tmp/test-results 53 TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)" 54 55 bundle exec rspec --format progress \ 56 --out /tmp/test-results/rspec.xml \ 57 --format progress \ 58 $TEST_FILES 59 - ruby/rubocop-check 60 61workflows: 62 version: 2 63 build_and_test: 64 jobs: 65 - build 66 - test: 67 requires: 68 - build 69

投稿2021/04/25 12:39

ryok8982

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問