アプリケーションの機能自体には直接関係ないlintのgemの管理

tl;dr

管理したい。

変更したファイルにrubocopやjscsを実行して pull requestに自動でコメントする – Saddler – checkstyle to anywhere
定期的にライブラリの依存関係をアップデートしてPull Requestする – Saddler – checkstyle to anywhere

このへんのエントリでは話のスコープから外した。
スクリプトの序盤で

gem install --no-document git_httpsable-push pull_request-create

とさらっとすませている。

好みではない方法

このやり方はそんなに好みではない。
lintに使うgemだろうとなんだろうと、入る環境を固定したい。
入るバージョンを固定したい。たとえlocalでも。
ちょっと結果がおかしいのをローカルで確認したい、時にとても困る。CircleCIみたいにsshで入れれば多少はマシ。多少。
cleanなciサーバー上ではグローバルに入れて使い捨てていいけど、ローカルでグローバルに入れるのはちょっと…

とぼんやり考えている。
普通に使いたい人(使って欲しい人)にはイミフすぎるので、話のスコープから外している。

好みの方法

rubyプロジェクトの場合は普通にアプリのGemfileのdevelopmentに追加するのがいい。

もしくは

lint.gemfile
lint.gemfile.lock

にしておいて、

bundle --gemfile lint.gemfile --path vendor/lint-bundle

にする。別gemfileを指定して、別pathにinstall。

bundle installはgemfile指定できるけど、
bundle updateやbundle execはgemfile指定できないので、
こうしている間は、元のアプリのbundle exec出来なくて、元のアプリのするときは再度

bundle --path vendor/bundle

なりして、.bundle/config のpathの向き先変えてからbundle execする必要がある。
スクリプト一枚ごとに小分けにしていくのは、これはこれでbundle updateなどメンテが辛くなるので、
ある程度まとめたい、ただある程度まとめると、結局、というループ。

golang自分はまだ書けないんだけど、golangならこの問題に関しては解決するんだよなあ。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中