windyakinってなんて読む

うぃんぢゃきんではない

GitHub Actions をつかって Google Cloud Functions にデプロイする

f:id:windyakin:20210319232925p:plain

Google Cloud Functions ってやつ、 Slack の Webhook 系のアクションだとか、情報を整形して別の API横流しするだけの Proxy 系アプリケーションなんかのホスト先として便利に使ってたのだけども、その簡単さからCDの構築をサボっていて、よくリポジトリの状態と実際に展開されているコードが違うみたいな状態のまま放置してしまうなどどうにもうまく管理ができていなかったんですよね。まあ先述の通りそんなに重要なアプリケーションを管理しているわけでもないので、長らく自分の中での「動いてるからいいや」の代表的な存在だったのですが、やっぱりCVEなんかで報告されているような脆弱性を抱えるライブラリをそのまま放置するのはよくないなという気持ちになり、重い腰を上げてCD環境を整備することにしたのでそのメモ。

続きを読む

curlコマンドでHTTPステータスコードだけを取得する場合は--write-outオプションを使うと良い

シェルスクリプトを書いているとcurlコマンドなんかで指定したURLのHTTPステータスコードだけがほしいという場合がある。

結論から言うと --write-out / -w というオプションを使うと実現できる

% curl -s -o /dev/null --write-out "%{http_code}" https://www.example.com/
200

-o /dev/null にしているのは取得内容を標準出力に表示しないようにするもので、こうすることで文字列として出力されるのはHTTPステータスコードだけになりパイプやシェルスクリプトで処理がしやすいなどのメリットがある。

--write-out で出力できる内容いろいろ

ところで --write-out とはなにか。こういうとき、脳死Google検索すると上位にQiitaというウェブサイトがでてきてしまうのだが、原典をみるのが一番確実である。

curl が指定URLにアクセスしたときに取得する様々な情報を簡易的なテンプレート表現で出力させることができるコマンドで、HTTPステータスコード%{http_code} 以外にも、アクセスのために必要な処理にかかった各種の時間なども出力させることができる。

curl のバージョンによっては使えないパラメータも多々あるので、手元のバージョンで使えるものを確認するには curl --manual--write-out の項を確認するとよい。

GitHubさえあればブランチ名は適当でいいのかもしれない

f:id:windyakin:20210304231722p:plain

その日もいつものように仕事でコードを書いていた。動作確認も終えて一段落したので、作業内容をGitにコミットするためにブランチを切ることになったのだが、 git checkout -b と打ったところでブランチ名を何にするか悩んでしまった。そのリポジトリのブランチ名運用には何か取り立てたルールがあるわけでもなかったので、まあいつもなら update_〜 とか fix_〜 とかつけるのだが、今回行った作業内容に対してどれもピンと来ず、そのまま10秒ほど考え込んだあとたっただろうか、ふと自分の中にある考えが湧いた。

「もしかしてブランチ名って適当でいいのでは」

続きを読む

シンプルに Fluentd にログ転送ができる RubyGem "awesome_fluent_logger" をつくった

f:id:windyakin:20210124141456p:plain

Rails など Ruby のログ出力を Fluentd に転送するための RubyGem "awesome_fluent_logger" をつくって公開したので、それについて紹介する。

余談だが、 Awesome というのは完全な主観でしかないので我ながらなかなかひどい名前だと思うのだが、それに代わるいい名前も思いつかなかったという経緯があり、このような名前になったことを言い訳しておく。

続きを読む

GitHub Actions の strategy matrix の内容を他のジョブから動的に定義する

こんにちは。突然ですが GitHub Actions 使っていますか?

自分は GitHub Actions を使い始めて1年ぐらいになりますが、最近ペパボの GitHub Enterprise 上でも GitHub Actions が使えるようになったので、既存の CI の移行や業務効率の改善がはかれるような Workflow をゴリゴリ量産してチームメンバーにも布教している真っ最中です。

それはさておき、今日は個人的に GitHub Actions を書いてきた中で、一番ハックしてるなあ〜と思った実装を公開しておこうと思います。

続きを読む