くりにっき

フルスタックキュアエンジニアです

gitpanda v0.8.0をリリースした

リリースノート https://github.com/sue445/gitpanda/blob/master/CHANGELOG.md#v080 v0.8.0について 社内GitLabのnginx周りの設定を変えた時にAWSからGitLabのAPIが叩けなくなってgitpandaが使えなくなったので、それをちゃんと検知できるようにするためにS…

地域.rbカレンダーのバックエンドをリプレイスした

見た目は変わらないですがバックエンドを変えてます sue445.github.io 今までの運用 カレンダーに追加したいconnpassやDoorkeeperのグループを condo3 でics取得 自分のGoogleカレンダーにインポート https://calendar.google.com/calendar/embedhelper?gses…

RubyKaigi 2020のCFPに採択されました

昨年 に続き、今年も登壇させてもらえることになりました! rubykaigi.org 今回は「Ruby on CI」というタイトルで、CIマニアがRuby製のgemやアプリのCIについて延々と話します。 【TODO】タイムテーブルが出たらここにリンクを貼る CFPはここにありますがネ…

circleci-ruby-orbs v1.5.0をリリースした

https://circleci.com/orbs/registry/orb/sue445/ruby-orbs リリースノート https://github.com/sue445/circleci-ruby-orbs/blob/master/CHANGELOG.md#v150 Ruby 2.7でbundler 2.1.2が入りましたが、bundler 2.1で bundle install --path などの引数がdeprec…

go-mod-tidy-prを作った

GitHub Actions上でgo mod tidyしてPRを作るActionです github.com github.com モチベーション dependabotでgoのモジュールを定期的にアップデートしていると go.sum に古いバージョンのゴミが残り続けます。 github.com/aws/aws-lambda-go v1.11.1 h1:wuOnh…

GitHub ActionsでTravis CIのallow_failures的なやつをやりたい

いわゆるジョブが失敗しても成功扱いしたい的なやつ tl;dr; jobs: test: runs-on: ubuntu-latest container: ${{ matrix.ruby }} strategy: fail-fast: false matrix: ruby: - ruby:2.2 - ruby:2.3 - ruby:2.4 - ruby:2.5 - ruby:2.6 - ruby:2.7 - rubylang/…

plant_erd v0.2.0をリリースした

sue445.hatenablog.com github.com リリースノート 苦労点 クロスコンパイルができない 初めてのWindows上でのCI 途中で実行ファイルを分けた ライセンスをどうするか リリースノート https://github.com/sue445/plant_erd/blob/master/CHANGELOG.md#v020 v0…

capistrano-itamaeのCIをDockerizeした

GitHub Actions移行時についでにやったやつ github.com sue445.hatenablog.com 新旧構成 モチベーション 実際の差分 ボツPR まとめ 新旧構成 旧 Vagrant DigitalOcean Wercker 新 Docker GitHub Actions モチベーション capistrano-itamaeではインテグレーシ…

個人gemのいくつかでRuby 2.4以下のサポートを切った

gem

下記エントリの続き sue445.hatenablog.com Ruby 2.7で require "open-uri" open(url).read のように書くと warning: calling URI.open via Kernel#open is deprecated, call URI.open directly or use URI#open のようなdeprecation warningが出ます。 しか…

個人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-rben…

2019年振り返り

tl;dr; 登壇 趣味コード お仕事 推し事 見た映画 ライフイベント 地上波デビュー 商業誌執筆 来年の抱負 tl;dr; 色々ありました 登壇 特に意識していなかったんですが今年に入って1~9月まで大小色んなところで毎月登壇していました。 その中でも大きかった…

僕がOSS導入時に気にしてること

前置き 観点 GitHubやGitLabなどのリポジトリの場合 https://rubygems.org/ https://hub.docker.com/ 共通 (2019/12/29 11:30追記) 2019/12/29 11:30ブコメレス 前置き 社のesaに投下したものの反応が薄くて寂しいので全体公開 他人が作ったOSSを使うにあた…

「自前でGitLabを管理するために知っておかなければならないこと」の付録 #gihyosd

これは GitLab Advent Calendar 2019 - Qiita の18日目です。 大事なことなので最初に 付録A:GitLab.comを使いつつ自前のGitLab Runnerを使う 付録B:公式Dockerイメージを使う 大事なことなので最初に 僕がGitLab特集で書いた「自前でGitLabを管理するため…

ERDをPlantUML形式で自動生成するツールを作った

PlantUML + ERDでPlantERDです github.com モチベーション PlantERDの特徴 使い方 出力するテーブル数の制限について 技術的に頑張ったこと テストのこと Foreign keyで隣接している別のテーブルを探す方法 複数DB対応のつらみ 追記:2019/12/13 9:45 モチベ…

Software Design 2020年1月号のGitLab特集に寄稿させて頂きました #gihyosd

商業誌デビューです! gihyo.jp きっかけ GitLab.JP の @hiroponz79 さんにお声がけいただいて参加することになりました。 僕の担当について GitLab特集は全3章構成なのですが、僕は第3章の「自前でGitLabを管理するために知っておかなければならないこと」…

HP Pavilion 23-q191jp ハイエンドモデルのメモリを増設した

3年前くらいに買った HP Pavilion 23-q191jp ハイエンドモデル のメモリを増設したのですが、分解に手間取った&ググっても詳しい分解手順が書いていなかったのでメモ 注意点 メモリ増設の経緯 分解手順 1. モニタの下のキャップを2つ外してネジを緩める 2. …

tanuki_reminderを作った

tanuki_reminderとは 名前の由来 技術的なこと 使い方 tanuki_reminderとは マージされていないMRの一覧を指定した時間にチャットに通知するリマインダーで、 Pull Reminders のGitLabクローンです。 Pull Remindersが便利なのでGitLabでも使いたくて作りま…

GitLab CIとCircleCIのキャッシュ戦略の違い

仕事でCI全般のお悩み相談されることが多くて .circleci/config.yml や .gitlab-ci.yml をリファクタリングすることがよくあるのですが、その時に一番意識してるキャッシュ戦略について長年自分の中の暗黙知になっていて明文化できてなかったので書きます。 …

vagantでgem名とrequireする名前が異なるgemを使う時には注意が必要

タイトルが全て 経緯 原因 経緯 https://hub.docker.com/r/sue445/vagrant-aws/ っていうDockerイメージをメンテしてて*1、Vagrant 2.2.6が出たタイミングでDockerイメージのビルドがコケるようになりました https://app.circleci.com/jobs/github/sue445/do…

Slackからのリクエストを処理するwebhookを1回だけ実行したい

最近そういうことを社内で何回か書いたのでメモ 前提 なぜ重複投稿されるか? 重複実行対策 1. 実行内容を一定時間キャッシュする 2. 排他ロックをする 3. サーバ側での並列処理を捨てる 前提 Slackには特定のイベントが発生した時に任意のwebhookにリクエス…

【CVE 2019-16892】rubyzip v1.3.0にアプデする時は絶対validate_entry_sizesを設定してください

tl;dr; タイトルが全てです 前置き GitHubのSecurity Advisoryで下記のようなPRがきていると思います このPRをマージすればリポジトリのアラートも消えて問題なさそうに見えるのですが、実際にはgemのアップデートだけでは不十分です CVE 2019-16892について…

circleci-bundle-update-prをGitHub Actionsで動かせるようにした

投げたPRはこちら github.com 動機 とある事情でCI用途のパーソナルアクセストークンを撲滅したかった件の一環です。 解説 GitHub Actionsはジョブ実行時に自動でアクセストークンをセットしてくれて便利なんですが、API実行の許可は付与されていても git pu…

【CVE-2019-10429】 Jenkins GitLab Logo Plugin v1.0.4をリリースした

作ったきり特にメンテしていなかった Jenkins GitLab Logo Plugin ですが、Jenkinsチームから脆弱性の報告を受けたので修正しました。 jenkins.io https://jenkins.io/security/advisory/2019-09-25/#SECURITY-1575 にも書いてますが、GitLabのprivate token…

GitLab CIでTerraformを動かす

GitLab CIでTerraformをいくつか動かしてるのですがGitLab CI独自の機能をうまく使うといい感じにCIができるようになったのでメモ 前提 ベースになるジョブをincludeで別リポジトリから読み込むと便利 include導入前 include導入後 メリット 上記templateで…

CIマニアから見たGitHub Actions(Beta)の使い所

1ヶ月くらい使って勘所が見えてきたのでメモ メリット 1リポジトリ辺り20並列までジョブを並列実行できる ジョブ実行時はアクセストークンが勝手に設定されている マトリクステストがやりやすい 実際にGitHub Actionsに移行したプロダクト zatsu_monitor act…

zatsu_monitor v1.0.0をリリースした

リリースノート https://github.com/sue445/zatsu_monitor/releases/tag/v1.0.0 Breaking changes zatsu_monitorは今まで 0.3.3 のようなtagをつけていたのですが、Go modulesがprefix付きのtagを推奨していたので *1 、それに準拠して v1.0.0 のようなtag名…

よいコミットメッセージを書くために心がけていること

よいコミットメッセージとはどういうものだろう? - chiastolite’s blog に対するアンサーソングです chiastolite.hatenablog.com 必要であればWhyを補足するためのContextを書く 元エントリだとコミットメッセージの話だったけど僕はPRで実践してもいいと思…

condo3と地域.rbカレンダーを作った

夏の進捗です。 令和の夏、進捗の夏— sue445 (@sue445) 2019年8月11日 condo3 condo3について モチベーション ユースケース 技術的なこと 技術の選択理由 開発時に苦労したこと 名前の由来 地域.rbカレンダー 技術的なこと メリット 8/15 16:50追記 condo3 c…

AWS Lambda CI/CD俺的ベストプラクティス

Lambdaで動くアプリやフレームワークの事例はよく見るのですが、LambdaのCIやCDにしやすさに主眼をおいた紹介はあんまり見ないので現時点での自分のベストプラクティスのメモです tl;dr; このエントリで書いていること Lambdaをデプロイするのに肝になること…

go-doorkeeperを作った

github.com go-doorkeeperについて golangで Doorkeeper API を利用するためのAPIクライアントです 最近golangでDoorkeeperのAPIを叩きたい需要が発生したんですが誰も作ってなさそうだったので作りました。*1 使い方 READMEからコピペ package main import …