くりにっき

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

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 …

プリッカソン8でえもいwebhookを作った #prickathon

prickathon.connpass.com えもいwebhookとは? リポジトリ 技術的なこと 特徴 スライド版 えもいwebhookとは? emoji notify webhook、略してemoy(えもい)webhookです 何番煎じか分からないですがSlackにemojiが登録された時に通知するwebhookです リポジ…

【追記あり】Docker Hubのrubyイメージで急にbundle installできなくなった時の対応

tl;dr; あらすじ エラー内容 修正方法 CircleCIの場合 GitLab CIの場合 対応PR 追記:2019/7/13 tl;dr; export BUNDLE_PATH__SYSTEM=false をつける あらすじ 会社で 今日のアニメボット を動かしているんですが、7/11夕方までは動いていたのに7/12分から急…

ご報告

7月でピクシブに転職して丸1年になりました。 sue445.hatenablog.com 現場からは以上です。

Code Climate Test Reporter用のCircleCI Orbsを作った

https://circleci.com/orbs/registry/orb/sue445/codeclimate github.com 経緯 使い方 Orbでやってること 小ネタ 経緯 自分のリポジトリの .circleci/config.yml にあった野良commandをコピペ運用するのが嫌だったというのと、既存のCode Climate系のOrbsを…

awscli-allを作った

awscli-allについて 作った理由 余談1 余談2 2020/10/28追記 awscli-allについて awsのクライアント全部入りのDockerイメージです https://hub.docker.com/r/sue445/awscli-all/ github.com 作った理由 CIから AWS SAM のデプロイをしたかったんですが、AWS…

rubicure v1.2.1で平成&令和対応をした

先日 スター☆トゥインクルプリキュア でキュアコスモが発表されました 【スター☆トゥインクルプリキュア 】5人目のプリキュア、キュアコスモのビジュアルを公開!その登場と活躍をお楽しみに!声を担当する上坂すみれさんからメッセージも届きました!https:…

gitlabci-bundle-update-mr v0.3.0をリリースした

gitlab.com changelog https://gitlab.com/sue445/gitlabci-bundle-update-mr/blob/master/CHANGELOG.md#v030 v0.3.0の新機能 GitLab CIが他のCIと比べて優れてる機能の1つにMerge when pipeline succeeds(CIが通ったら自動でMergeRequestをマージする)が…