emolog

脳内メモです。

githubActionでbundle installの際に、bundle lock --add-platformしろと言われた

f:id:ababababa0222:20210308172835p:plain

事象

  • MacでlocalのRailsを動かしていた
  • githubActionでubuntuの実行環境でCIを実行したかった
  • bundle installの際に Your bundle only supports platforms ["x86_64-darwin-19"] but your local platform is x86_64-linux と言われる
  • bundle lock --add-platform x86_64-linux してねって言われる
4s
Run ruby/setup-ruby@v1.71.0
Installing Bundler
bundle install
  /opt/hostedtoolcache/Ruby/3.0.1/x64/bin/bundle config --local path /home/runner/work/telpay/telpay/vendor/bundle
  /opt/hostedtoolcache/Ruby/3.0.1/x64/bin/bundle config --local deployment true
  Cache key: setup-ruby-bundler-cache-v3-ubuntu-18.04-ruby-3.0.1-Gemfile.lock-1bec2a8434e23d7af956d5debdeb907f064e4ce098d3207562299dd550707b10
  /opt/hostedtoolcache/Ruby/3.0.1/x64/bin/bundle install --jobs 4
  Your bundle only supports platforms ["x86_64-darwin-19"] but your local platform
  is x86_64-linux. Add the current platform to the lockfile with `bundle lock
  --add-platform x86_64-linux` and try again.
  Took   0.73 seconds
Error: The process '/opt/hostedtoolcache/Ruby/3.0.1/x64/bin/bundle' failed with exit code 16

対応

  • bundle lock --add-platform x86_64-linux して再度commit
  • 通った

brew updateで `homebrew-core / homebrew-cask is a shallow clone. `と怒られる

f:id:ababababa0222:20210312000009j:plain

Macにて、 brew update を実行しようとしたら怒られた

$ brew update
Error:
homebrew-core is a shallow clone.
homebrew-cask is a shallow clone.
To brew update, first run:
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow
These commands may take a few minutes to run due to the large size of the repositories.
This restriction has been made on GitHub's request because updating shallow
clones is an extremely expensive operation due to the tree layout and traffic of
Homebrew/homebrew-core and Homebrew/homebrew-cask. We don't do this for you
automatically to avoid repeatedly performing an expensive unshallow operation in

エラーにこうしてね、ってコマンドがあるので、それに沿って下記のコマンドを実行

git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow

結構時間がかかりました。

再度

brew upgrade して終了

SAMを用いて、ローカルでAWS lambdaの開発をする

f:id:ababababa0222:20210312000123j:plain

やったこと

  • lambdaを使うプロジェクトにて、ローカル開発をしたかったので調べた
  • SAM(サーバーレスアプリケーションモデル)でいい感じにできるっぽかったので調べた

SAMのインストール(Mac OS)

  • 前提
    • AWS CLI, Git, Dockerをインストールしてあること
  • homebrewを用いてインストール
$ brew tap aws/tap
$ brew install aws-sam-cli
# インストールしたバリデーションが返却される
$ sam --version
SAM CLI, version 1.23.0

実行

  • samを用いてローカルのlambdaを起動する
# localのlambdaを起動する
$ sam local start-api

【AWS】複数環境でAWS CLIを使い分ける

  • 他のprofileを設定する
aws configure --profile hoge
  • 鍵とか聞かれるので入力する
$ aws configure --profile sample
AWS Access Key ID [None]: XXXXXXXXXXXXXXXX
AWS Secret Access Key [None]: XXXXXXXXXXXXXXXX
Default region name [None]: ap-northeast-1
Default output format [None]: json
  • profileを指定して実行する
aws cmd --profile hoge

Flutterで画像を表示する

f:id:ababababa0222:20210328103419p:plain

Flutterで画像を表示する

flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  # To add assets to your application, add an assets section, like this:
  # file指定でも、ディレクトリ指定でもいける。今回はディレクトリ指定にした
  assets:
    - images/
  • 以下みたいに呼べる
Image.asset('images/logo.png')

参考

【rails】activerecord-importとelasticsearch-railsのimportがコンフリクトしたのでメモ

前提

  • もともとrailsでElasticsearchを使用していて、後からactiverecord-importに依存しているライブラリを入れた。
$ bundle exec gem list | grep activerecord-import
activerecord-import (1.0.8)
$ bundle exec gem list | grep elasticsearch-rails
elasticsearch-rails (7.1.1)
  • 両方でrailsのmodelにimportというクラスメソッドを生やすので、コンフリクトしてしまい、Elasticsearchの処理が軒並みこけてしまった。

f:id:ababababa0222:20210308172835p:plain

調査

  • activerecord-import側にコンフリクトした場合の対応が載っていた。

Activerecord-Import adds the .import method onto ActiveRecord::Base. There are other gems, such as elasticsearch-rails, that do the same thing. In conflicts such as this, there is an aliased method named .bulk_import that can be used interchangeably.

aliasを使えみたいにかいてある。

github.com

対応

  • なんかメソッドのalias使うの微妙だな〜と思ったので。
Model.__elasticsearch__.import

みたいな感じでつかうようにした。

参考

qiita.com

おしまい。