Open6
Dangerをローカルで試す
環境
- Mac
- Github
Ruby環境を整える
rbenvを入れる
brew install rbenv
zshrcに初期化を書く
eval "$(/opt/homebrew/bin/rbenv init - zsh)"
rbenvの使い方
# 入っているバージョンの確認
rbenv versions
# デフォルトで使うバージョンの選択
rbenv global 3.1.4
rbenv global system
# セッション中だけにrubyバージョンを適用する
rbenv shell 3.1.4
- Macの場合、デフォルトはsystemのままの方がベストらしい
- OSや他のセットアップでRubyが必要な場合にバージョンが違うことによってエラーが起きることが稀にある
- 入っていたRuby2.6.0はEOLだが、Macのデフォルトの2.6.0はAppleがメンテしているので大丈夫
Dangerに必要なbundlerを入れる
gem install bundler:2.2.22
Dangerをローカルで実行する
PRを選択して行うことになる。
準備が整っていれば、下記で実行できる。
DANGER_GITHUB_API_TOKEN=<repo 権限つけた GitHub の token> bundle exec danger pr <適当なPRのURL>
Rubyあれこれ
- unlessはnot if
- ログはputs
- requireがimportみたいな感じ
#ktlintのチェックスタイルレポートの中から、差分以外を取り除く
target_files = (git.modified_files - git.deleted_files) + git.added_files
checkstyle_format.base_path = Dir.pwd
Dir.glob("reports/ktlint/**/*.xml").each do |file|
doc = REXML::Document.new(File.open(file))
REXML::XPath.each(doc, '//file') do |file|
filename = file.attribute('name').value
filename = Pathname.new(filename).relative_path_from(Dir.pwd).to_s
unless target_files.include?(filename)
file.remove
end
end
Tempfile.create() do |f|
f.write(doc)
f.close
checkstyle_format.report f.path
end
end
これでもいけた
cd プロジェクトの場所
rbenv shell 3.1.4
bundle install
DANGER_GITHUB_API_TOKEN...