2020-02-05 [長年日記]
_ Windows WSL ubuntu apt でWebpackerが要求するnodeバージョンより古くてエラー
WSL ubuntu aptで入るnodeのバージョンが古くて、webpackerで以下のエラーが出た。 なので、より新しいnodeを入れる手順に変更。nvmを利用した。
Webpacker requires Node.js >= 8.16.0 and you are using 8.10.0
Please upgrade Node.js https://nodejs.org/en/download/
$ sudo dpkg-reconfigure tzdata
$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt install autoconf bison build-essential libssl1.0-dev
libyaml-dev libreadline-dev zlib1g-dev libncurses5-dev libffi-dev
libgdbm-dev sqlite3 libsqlite3-dev -y
# ここからnvmとnodeインストール
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
$ source ~/.bashrc
$ nvm install --lts
$ nvm alias default lts/* # ターミナル再起動時にlts版を使うようにする
$ nvm use default # ターミナルをここで再起動するなら省略してもいい
$ npm install --global yarn # そのフォルダだけでなくグローバルに入れる必要があるので--globalが必要
# このあとrbenvなどをインストール
ほかにnも検討したが、たぶん先にnodeをaptで入れておいて、後から消す必要があるぽい。 nodenvも考えたけど、node-buildいれなくちゃいけないので手順が長いと思った。
jsのところはじぐそうさんにいろいろ教えてもらった。感謝。
RailsGirlsガイドのページも更新される予定。
2020-02-10 [長年日記]
_ GitHub ActionsでRailsアプリを動かす
結論を先に書くと、以下のファイルを配置すればいい。もしくはGitHubリポジトリからActionsタブ、そしてSet up a workflow yourselfから進んで以下を入れる。
name: Rails Tests
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Ruby 2.7
uses: actions/setup-ruby@v1
with:
ruby-version: 2.7
- name: Build and test
env:
RAILS_ENV: test
run: |
sudo apt-get -yqq install libsqlite3-dev
gem install bundler
bundle install --jobs 4 --retry 3
bundle exec rails db:create
bundle exec rails db:migrate
yarn install
bundle exec rails test # minitest
bundle exec rails test:system # minitest
以下、メモ。
GitHubActionsでは基本、actions/ のものが公式部品のようだ。
-
https://github.com/actions/checkout
- 基本パック的なもの
-
https://github.com/actions/setup-ruby
- Ruby
-
https://github.com/actions/setup-node
- Node
- 今回はつかわなくても動いた
-
sqlite3をaptで入れて動かす設定
-
yarn installコマンドがないとwebpackerエラーになった
-
yarnとChrome はデフォルトで入っている
-
rails test:systemを実行するときにはChromeをheadless設定にしないとエラーになった
Selenium::WebDriver::Error::UnknownError: unknown error: Chrome failed to start: exited abnormally
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
以下の記事を参考にしました。ありがとうございました。いわさきさんのactons/setup-rubyの記事は前に読んでたので、eregonさんらによって先週頃にactons/setup-rubyが修正されたのはありがたかったです。