2022-01-01から1年間の記事一覧

octocovのコードメトリクスをMackerelで可視化する

この記事はMackerel Advent Calendar 2022の5日目の記事です。3年ぶりのMackerel Advent Calendarへの参加です。 4日目は id:buty4649 さんで、サーバの温度を監視するmackerel-plugin-thermalを作った - ぶていのログでぶログでした。自宅サーバ、私にはま…

octocovで実現できる3つのレポートコメントの方法

octocovはコードメトリクスを取得してPull Requestにレポートをコメントしたり、設定したデータストアに記録することができます*1。 今回はoctocovで実現できる3つのレポートコメントの方法を紹介します。 Pull Requestへのレポートコメント Pull Requestへ…

tagprで実現するPull Request上で進めるOSSのリリースマネジメント

これがtagprで実現したかったこと統制されていながらも自由なリリースの自動化エイッと踏み込んでくださった @katzchum さんに感謝 https://t.co/OEXq6i5xXC— k1LoW (@k1LoW) 2022年10月1日 私の趣味は少し実用的で小さなOSSを書くことです。 今までも多くの…

GitHub上で構築するコードメトリクス計測基盤

TL;DR GitHub "のみで" 構築するコードメトリクス計測基盤 バッジ生成機能 CIで計測したコードメトリクスのバッジを生成したとして、そのバッジを誰が配布するのか CI上で生成したバッジをそのままリポジトリのコミットしてしまう Central modeを使う GitHub…

経過時間を内訳も含めて計測するためのストップウォッチライブラリ stopw を作った

Go

runn を使ってシナリオテストを順調に積み上げていった結果、順調にテスト実行時間が長くなってきました。 そこでテストのどの部分に時間がかかっているかを計測したくなったのですが、runnにその時間計測機能はなかったのでそれを作ろうと考えました。 とこ…

シナリオテスティングツール/パッケージであるrunnをgRPCに対応させた

Go

gRPC、Unary以外のメソッドの挙動が面倒すぎてうまくrunnの実装の落とせない特にBidirectional-Streaming、お前だ— k1LoW (@k1LoW) 2022年6月26日 なんとかgRPC対応ができました。 「そもそもrunnって何?」については会社のテックブログにエントリを書きま…

gomockで「呼ばれるべき」と指定した関数の非同期な実行を待ちたいのでテストヘルパーを書いてみた

Go

gomockでデータベース操作などをモックすることはよくあると思います。 そのテスト関数内で「呼ばれるべき(EXPECT())」と指定した関数に非同期に実行される挙動がある場合、テスト関数の書き方によっては実行終了までにその関数が実行されないことがあり、…

octocovはコードカバレッジを確認するCLIツールとしても使える

octocovは私が開発しているコードメトリクス計測のためのツールキットです。 主となる用途であるCI(GitHub Actions)に組み込む使い方は会社のテックブログで紹介させてもらいましたのでそちらをご覧ください。 tech.pepabo.com 私自身もドックフーディング…

椅子と机が最終形態になった

椅子と机が最終形態となりました。 もう、壊れない限りは「他のものが欲しい」とならないと思います。 Mirra 2 Chairs 椅子です。 www.hermanmiller.com 2020年にリモートワークが増えることになったことをきっかけに購入しました。 会社ではとても良い椅子…

PHPerKaigi 2022でGitHub Actionsについて発表した #phperkaigi

参加してきましたPHPerKaigi 2022 phperkaigi.jp 感想 一言で言うと「オフライン参加の人たちが羨ましい!!!」でした。 オンライン開催でも本当に参加してよかったと思えたのですが、時折垣間見えるオフライン参加の人たちのワイワイ感が楽しそうでした。 …

PHPerKaigiが好きな理由 #phperkaigi

PHP

PHPの名を冠していて、それでいていろいろな技術に対して門戸を開いているところが好きです。 (ほぼ)元PHPerであるからなのですが、なんとなくPHPに関われている気がして嬉しいのです。 他のコミュニティや勉強会やカンファレンスも好きなところはたくさん…

データベースにクエリを投げて結果をプリントするライブラリqpを作った

Go

データベースを伴うテストを書いていて、何故かテスト結果が安定しない事象に出くわして「なんでだ?????」と混乱した結果、データベースの状況をprintデバッグをしたくなって作りました*1。 github.com 使い方は package main import ( "database/sql" …

ファイルの一部の文字列を差し替えするためのコマンド/パッケージ repin を作った

Go

継続的ドキュメンテーション関連です。 README.mdなどのドキュメントを運用していると、そのドキュメントの一部を(CIなどで)自動で差し替えたいことがあります。 例えば xxx help コマンドの出力をもって機能一覧にしているようなREADMEだと、機能が追加さ…

Colima on ARM Macでaarch64とx86_64のDocker環境を切り替えて使う

Colimaにはプロファイル( profile )という概念があり、--profile によってVM環境を切り替えることができます。 また --arch オプションでVMのイメージを切り替えることも可能です。 上記を利用してaarch64とx86_64のDocker環境を両方準備してみます。 方針…

awsdoに ~/.aws/(config|credentials)の設定情報がなくてもAssumeRoleできるようにするためのオプションと、AssumeRoleしたロールでAWSコンソールにログインするオプションを追加した

1年以上前からの久しぶりのアップデートです。 k1low.hatenablog.com --role-arn --source-profile 複数のAWSアカウントを横断して作業することがあり、AssumeRoleのための設定を~/.aws/(config|credentials)に書くのすら面倒になってきたので、設定なしでAs…

github-script-ruby@v2でRubyのバージョンを指定できるようにした

できた https://t.co/4u8SIdBksz— k1LoW (@k1LoW) 2022年1月16日 github-script-rubyが何かについてはペパボのテックブログに書きましたので是非ご覧ください。 tech.pepabo.com github-script-rubyは、簡単にいうと actions/github-script の Ruby版です。 …

2021年の振り返りと2022年の抱負

2021年の振り返り 2021年も2020年から引き続き内に籠った年だった気がします。 また、厄年だったことは全く関係ないのですが「エンジニアとしてこの先生き残るには」ということを考えることが多かったと思います。 私はこれまであまり将来を深く考えることは…