タグ

ブックマーク / sue445.hatenablog.com (16)

  • 個人gemのCIをほぼ全部Travis CIからGitHub Actionsに移行した - くりにっき

    2日間で30個くらいのリポジトリでGitHub Actionsに移行したのでメモ tl;dr; モチベーション GitHub Actionsを選んだ理由 GitHub ActionsでgemのCIをするための設定 2020/1/4 0:40追記 weekly build 公式のactions/setup-rubyではなくmasa-iwasaki/setup-rbenvを利用 ボツ案:Dockerイメージのrubyを使う masa-iwasaki/setup-rbenvを利用 setup-rbenvを使う場合の注意点 Travis CIのallow_failuresをGitHub Actionsでも実現する GitHub ActionsでRuby 2.3以下をビルドする Gemfile.lockをコミットしないリポジトリでもキャッシュを保存したい GitHub Actionsの不満点 ジョブ

    個人gemのCIをほぼ全部Travis CIからGitHub Actionsに移行した - くりにっき
  • CIマニアから見たGitHub Actions(Beta)の使い所 - くりにっき

    1ヶ月くらい使って勘所が見えてきたのでメモ メリット 1リポジトリ辺り20並列までジョブを並列実行できる ジョブ実行時はアクセストークンが勝手に設定されている マトリクステストがやりやすい 実際にGitHub Actionsに移行したプロダクト zatsu_monitor activerecord-compatible_legacy_migration index_shotgun デメリット yamlのanchorが使えない マトリクステストだとSlack通知がつらい 合わせて読みたい メリット 1リポジトリ辺り20並列までジョブを並列実行できる これに尽きる。 CircleCIにしろTravis CIにしろorganization(user) *1単位で並列数が縛られているため、例えば同じuserの他のリポジトリでジョブが詰まっていると別リポジトリではqueueが詰まってジョブが実行され

    CIマニアから見たGitHub Actions(Beta)の使い所 - くりにっき
  • Dependabotの設定ファイルを置くようにした - くりにっき

    なにげなくDependabotを見てたらリポジトリに .dependabot/config.yml を置けることを気づいたので置いてみた https://dependabot.com/docs/config-file/ 設定ファイルを置くメリット いつも使ってる設定晒し 解説 default_assignees allowed_updates automerged_updates version_requirement_updates まとめ ちなみに .dependabot/config.yml をコミットしてると設定画面でこんな表示になります 設定ファイルを置くメリット 新しくリポジトリを作ってDependabotを導入する時にボタンをポチらずに済む 別リポジトリから設定ファイルをコピーしてくればいつもの設定が導入できる 設定をgitで履歴管理 いつも使ってる設定晒し Rubyだとこれ

    Dependabotの設定ファイルを置くようにした - くりにっき
  • tigから git rebase -i したらいろいろ捗った - くりにっき

    git dtコマンド - razokulover publog を見て自分もgitのコマンドをカスタマイズしてるのを思い出したので普段よく使っているのを紹介します。 対象者 作業途中はtmpコミットをたくさん作って、最後に git rebase -i でコミットを整えている人 前置き gitのタイプ数を減らす gitコマンドを使う時に毎回 git と3文字タイプするのは時間の無駄なのでエイリアスつけるのをおすすめします ~/.bash_profile とか ~/.bashrc 辺りに下記を書きます。 alias g='git' これで g だけでgitコマンドが使えます git-now iwata/git-now tmp コミットのための独自サブコマンド git-now - アジャイルSEを目指すブログ 最速でtmpコミットするためのコマンド。Macなら brew install git-

    tigから git rebase -i したらいろいろ捗った - くりにっき
  • gemspecにRUBY_VERSIONによるif文書くのは意味がないので今すぐやめるべき - くりにっき

    自戒です tl;dr 発端 間違った対処法 だがしかし sonots先生曰く 検証結果 所感 Rubyのバージョンによる分岐を全部Gemfileに寄せた結果 謝辞 tl;dr gemspecの中でRubyのバージョンによってインストールしたいgemのバージョンを変えたい時は、gemspecではなくGemfileでif文書くのがおそらく正解 発端 先月くらいのFacebook内のちょっとした会話がきっかけでした *1 activesupportやactiverecord 5系以降ではRuby 2.2.2以降必須になった https://github.com/rails/rails/blob/v5.0.0/activesupport/activesupport.gemspec#L10 自分のgemがactivesupport (activerecord)に依存していた場合、そのままだとRuby

    gemspecにRUBY_VERSIONによるif文書くのは意味がないので今すぐやめるべき - くりにっき
  • Railsアプリやgem作る時にいつも入れているgem一覧 - くりにっき

    id:joker1007 さんに触発されました。 Ginza.rb 21回の発表資料。rails_adminのつらみとオススメgem達。 1年間で10個以上アプリやgemを作っている中でよく使うgemをまとめてみます Railsアプリ(rails new した直後に必ず入れる) annotate https://github.com/ctran/annotate_models modelのソースの先頭にテーブルのスキーマ情報を付加してくれるgem。いちいちschema.rbを見に行く必要がなくなるので超ベンリ こんな感じ # == Schema Information # # Table name: plugins # # id :integer not null, primary key # name :string # title :string # version :string #

    Railsアプリやgem作る時にいつも入れているgem一覧 - くりにっき
  • ドリコムを支える中間ポイントシステム - くりにっき

    はじめに これは ドリコムAdventCalendar の1日目です はじめに 1日目:ドリコムを支える中間ポイントシステム 一応自己紹介 プリキュアおじさん 嫁はキュアピース 開発の背景 ソーシャルゲーム歴史 中間ポイントについて 前受金と資金決済法について 有償ポイントと無償ポイント 複雑な売上計算 ドリコムの中間ポイントシステム(dpoint)について 自分の役割 重要なこと dpointが導入されているアプリ 課金フロー iTunesでの中間ポイント購入 GooglePlayでの中間ポイント購入 ポイント消費 dpointのリリースノート gemのボリューム date_discreterというgemを作りました どういうgem? 月の歯抜けを調べる 日の歯抜けを調べる 時間の歯抜けを調べる dpoint改修時のつらみ DBのスキーマ変更する場合は導入してるアプリ全部での影響を調べ

    ドリコムを支える中間ポイントシステム - くりにっき
  • Tカード個人情報提供先新着botを作りました - くりにっき

    https://twitter.com/ccc_privacy_bot 作った経緯 Tカードが個人情報を提携企業に提供開始 個人情報提供の停止 手続きガイド|CCC カルチュア・コンビニエンス・クラブ株式会社 ツタヤTカード、勝手に個人情報を第三者へ提供?規約改定炎上騒動の真相 CCCに聞く | ビジネスジャーナル 個人情報提供の中止はいつでもできるが、「提供先企業は随時増える」「提供先企業が増えてもCCCからは通知は来ない」「新規企業は何もしないとデフォルトで個人情報提供する設定」というユーザフレンドリーじゃない仕様 毎日PDFをチェックしにいくほど暇じゃないのでボット作るか という感じ ボット自体は半月くらい前にはできてたのですが、2回目以降のCCCの更新が取得できるまで公開を控えていました。 【追記】「個人情報」について 語弊あったようなので捕捉 「個人情報」とは言っても、個人情報そ

    Tカード個人情報提供先新着botを作りました - くりにっき
  • RubyKaigi 3日目まとめ #rubykaigi - くりにっき

    重要なことなので最初に 家に帰って感想エントリ書くまでがRubyKaigiです 僕はRubyKaigi会期中3日間当日レポうp完了!!! 会期中+αの感想エントリ Ohayō Rails (おはよう Rails) 弊社から @onk さんが登壇していました Railsはスタートアップが楽 ディレクトリ構成とか決まってる 毎回似たようなコマンド叩いていけばおk デプロイやテストの環境もそろってる Railsがひいたレールは他の言語やフレームワークに影響を与えている ActireRecord Arelが賢いからあれの対抗馬が出ない(作れない) ARで書いていればクエリはある程度きれいになる 他のフレームワークだとORM周りは微妙に足りないことが多いので、Arelの枠内でなんでもできるのがすごい テストでメジャーなのはfactory_girl。あとはfabrication エコシステムが充実して

    RubyKaigi 3日目まとめ #rubykaigi - くりにっき
  • RubyKaigi 2日目まとめ #rubykaigi - くりにっき

    昨日に引き続き当日中にうp完了! 昼間電源休憩しつつある程度まとめていてよかった、、、、*1 会期中+αの感想エントリ Keynote: Coming soon... 「Coming soon...」がセッションタイトル 過去のRubyConfのkeynoteでしゃべったrubyの新機能(未来)に関して、どれだけ実現したか・どれくらい時間かかったかの振り返り rubyconf 2001からruby2.0のことを話していて実際にリリースしたのは10年後 -> { } のラムダ式の書き方は最初文句言われたが、いざ入れたら評判よかった。 他の人の印象を信じてはいけない 個人的にはlambdaがtypoしやすいのでアロー演算子の方をよく使ってる 実現率は 15/22 ≒ 68%。他の機能は言っただけで終わってる OSSコミュニティはサメのようなものなので泳ぎ続けなければ死んでしまう Ruby 3.

    RubyKaigi 2日目まとめ #rubykaigi - くりにっき
  • RubyKaigi 1日目まとめ #RubyKaigi - くりにっき

    鉄は熱いうちに叩けって言うので帰宅してすぐにレポ書きました(次の日のセッションを聴くと記憶がGCされて忘れる) 自分のツイートを元にした箇条書きまとめです 会期中+αの感想エントリ CRuby Committers Who's Who in 2014 CRubyコミッタ紹介 SVNのアカウント数は85 ボット含む 去年の6月以降コミットしてるのはうち50人 RubyKaigi3日間で発表するのは15人 発表順に紹介 Rails5はSymbol GCを使いたいためにRuby 2.2以降のみサポートになるらしい Matzは肩書コレクターでスライド1枚に収まりきらないくらい CRuby Committers Who's Who in 2014 Rubyの開発で何が簡単で何が難しいのか 今年はいろいろ10周年 YARV 日Rubyの会 rubyistマガジン ※プリキュアも10周年です #rub

    RubyKaigi 1日目まとめ #RubyKaigi - くりにっき
  • bundler + rspecでfluentdプラグインを作るための手順 - くりにっき

    先日 fluent-plugin-out_chatwork を作ったのですが、fluentdの公式サイト だとtestunit使用を前提にしててrspec厨には厳しい世の中だったので自分用にrspecでfluentdプラグインを作るまでの手順をまとめてます。 コマンドを叩いた後のファイル出力は適宜コミットのURLをつけているので参照してください 0. 前提条件 rbenv や rvm のようなrubyのバージョン管理ツールをインストールしてること。 このエントリではrbenvを前提に書きます。 1. ruby 1.9.3をインストールする td-agent ver 1.1.20 時点でruby 1.9.3なので合わせておくのが無難。 rbenv install 1.9.3-p547 公式だと 1.9.3-p194 ってあるけどローカルで開発する分にはパッチバージョンまでは気にしなくていいと

    bundler + rspecでfluentdプラグインを作るための手順 - くりにっき
  • Rubyでプリキュアを作った #cure_advent - くりにっき

    これは プリキュア Advent Calendar 2013 の16日目です。 はじめに 12/16はキュアピースの中の人の金元寿子さんの誕生日です。おめでとうございます!!! ピカピカぴかりんじゃんけんぽん!キュアピース! #いい夫婦の日なので嫁を晒す #いい夫婦の日なので嫁を晒す 会社の方 トリプルピース 15日目 id:tdakak さんの ハートキャッチプリキュア!の好きなところ でした 16日目:Rubyプリキュアを作った Rubicure*1というプリキュアのgemを作りました。 プリキュアハッカソン で id:drillbits さんが作っていた pycure にインスパイヤされてRuby版を作りました。(Ruby 2.0以上必須) github: https://github.com/sue445/rubicure rubygems: https://rubygems.o

    Rubyでプリキュアを作った #cure_advent - くりにっき
  • Ruby 1.9と2.0でArray#shuffleの結果を同じにしたかった - くりにっき

    Rubyで使用されている乱数は Mersenne Twister というもので、同じseedを与えれば同じ乱数を生成してくれます 1.9.3p429 :001 > Random.new(445).rand => 0.6432614612049729 2.0.0-p195 :001 > Random.new(445).rand => 0.6432614612049729 この間1.9系と2.0系に対応したライブラリを書いていたのですが、rubyのメジャーバージョン間でArray#shuffleの結果が変わっていたので戸惑いました 1.9.3p429 :002 > [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].shuffle(random: Random.new(445)) => [4, 2, 10, 8, 6, 5, 3, 9, 1, 7] 2.0.0-p195 :002

    Ruby 1.9と2.0でArray#shuffleの結果を同じにしたかった - くりにっき
  • RSpec Performance Turning - くりにっき

    社内で開催されたRSpec勉強会テストのパフォーマンスチューニングについて話したので資料を公開してみます。 RSpecの名は冠しているものの他の言語やテスティングフレームワークでも応用できるところがあるかもしれません。 RSpec Performance Turning from sue445 8/3追記:はてブコメント返信 テストのテストにはテスト対象を使えばいいんでしょうか。 場合によりますね。 基的にはテストコードとテスト対象のプロダクトコードはペアであるはずなので、テストにバグが混入したとしても対応するテスト対象が変更されていなければテストがなんらかの形でエラーになるので、そこで検知できると思います。 テストコードのリファクタリング(共通処理をメソッド抽出など)は、既存のテストが品質を担保してくれてます(グリーンのままであればリファクタリング成功) 0からテスト書く場合でテストの

    RSpec Performance Turning - くりにっき
  • AZusaar! を全面リファクタリングしました - くりにっき

    全面リニューアルではなく全面リファクタリングです。 AZusaar!のjsがいろいろと酷かったので1ヶ月半くらいかけてちまちまリファクタリングしていました Before https://github.com/sue445/azusaar_js/tree/c87e7bb098b50ae3cc32b6b687f17f5bff7568b9 After https://github.com/sue445/azusaar_js/tree/32f2f01a68cce667268853c586d6568b3189d137 全然原型をとどめてない(ノ∀`) Github: https://github.com/sue445/azusaar_js リファクタリング用に作ったリポジトリですが、Githubにコードを置いておくと(自分が)何かと便利なのでそのままにしておきますw 最初の頃は「テスト駆動JavaS

    AZusaar! を全面リファクタリングしました - くりにっき
  • 1