Productivity Weekly (2022-05-11号)
こんにちは。サイボウズ株式会社 生産性向上チームの平木場です。
僕たち生産性向上チームは毎週水曜日に Productivity Weekly という「1 週間の間に発見された開発者の生産性向上に関するネタを共有する会」を社内で開催しています。
本記事はその時のネタをまとめたものです。
今回が第 73 回目です。過去の記事はこちら。
news 📺
Supercharging GitHub Actions with Job Summaries | The GitHub Blog
GitHub Actions にジョブサマリ機能が追加されました。ワークフロー画面に任意のマークダウンをジョブごとに表示できます。
使い方は簡単で、$GITHUB_STEP_SUMMARY
環境変数に Markdown をリダイレクト(書き込み)するだけです。
これまでも repos/:owner/:repo/check-runs
API などを叩いてコミットにひもづくサマリーを作ることはできました[1]が、それよりも遥かに簡単にサマリーを作ることができるのがこの変更の良いところです。
テスト結果のレポートや手順書を生成するジョブなどに使えそうです。嬉しいですね。
Announcing Compose V2 General Availability - Docker
Docker Compose v2 が GA になりました。
去年 Docker Compose v2 がリリースされ、正式公開されたのかと思ってた方が多かったと思いますが、実はまだ正式公開はされてなかったようです。
Docker Desktop はすでに v2 を同梱しているので、Docker Desktop 利用者は別途インストールする必要はありません。また、docker-compose コマンドは、docker compose のエイリアスとなっているようです。
v1 との互換性は高いですが、一部互換性のない部分があるので、そこは確認しておきましょう。v1 は非推奨となりますが、2022/10 までは重大なバグの修正が行われるようです。
新たな compose.yaml の書き方については以前まとめてくれている記事を取り上げたのでそちらをご覧ください。
まだ v1 を使っている方は早めに v2 へ移行していきましょう。
Docker Extensions: Discover, Build & Integrate New Tools into Docker Desktop - Docker
Docker Desktop に Docker Extensions 機能が追加されました(ベータ)。Docker Desktop に 3rd party の拡張機能を追加できる機能で、v4.8 から使えます。既に Red Hat や VMware などが拡張機能を提供しています。
Docker Desktop の UI 上から公開されている extension を追加でき、利用も UI 上からできます。また、Extensions を開発するための SDK も公開されています。
実際に Disk Usage という拡張機能を入れてみました。グラフでディスク使用量の内訳を表示できます。
手軽にインストールできて UI に統合されるのは便利ですね。他にもイメージのセキュリティスキャンを行う Trivy などがありました。まだ Marketplace の拡張機能は少ないですが、今後に期待ですね。
The GitHub Enterprise Server 3.5 Release Candidate is available | GitHub Changelog
GitHub Enterprise Server 3.5 の Release Candidate が来ました。
新機能が豊富です。
- Container Registry(public beta)
- Dependabot が GA
- GitHub Actions
- OIDC 対応
- internal なリポジトリでのアクションの共有
- Reusable Workflow
- キャッシュのサポート
- 一部のジョブだけ Re-run
- など
特に GHES の GitHub Actions で actions/cache がサポートされたのが嬉しいですね。これまでは使えなかったため自前でキャッシュの仕組みを整える必要がありました。
しかし、GHES はクラウド版 GitHub への追従速度が速いですね....すごいです。
Node v16 Released 🎉 · Issue #14 · aws/aws-lambda-base-images
AWS Lambda において、Node.js v16 が使えるようになりました。しかしまだ GA ではありません。
現在は CLI から直接 "nodejs16.x" を指定するなど、API を叩けば使えますが、コンソールからの利用はまだできません。これまではコンソールや API やマネージドサービスの足並みが揃ってからリリースしていたようですが、今回は実験的に準備ができたところからリリースをしているようです。
なお、3rd party ツールであるVercel や Serverless Framework は既に Node.js v16 対応をリリースしています。
まだ GA とはなっていないため本番利用はなんとも言えませんが、コンソールを使わないのならさっさと v16 を使うようにしても良いかもですね。
Node.js v16 で使えるようになった機能は別にしんどくないブログさんがよくまとめてくれています。個人的には AbortController が使えるようになるのが嬉しいですね。
tool 🔨
test-summary/action: Show a helpful summary of test results in GitHub Actions CI/CD workflow runs
最近追加された GitHub Actions のジョブサマリにテスト結果を表示するアクションです。JUnit XML と TAP 形式に対応しています。
example のリポジトリがあり、サマリの例が確認できます。
C 言語(Clar test framework)のテスト結果 (https://github.com/test-summary/examples/actions/runs/2296021353#summary-6357379930)
何割のテストが成功/失敗してるかのグラフと、失敗したテストの詳細が表示されています。
アクションとなっているため利用は簡単で、アクションを呼び出して引数に XML のパスを渡すだけです。
ジョブサマリ機能は最近追加されたばかりですが、リポジトリ自体は 2 ヶ月前から作成されています。どうやら GitHub の PdM が作ってるようです。通りで...
気軽に利用できるのが嬉しいですね。気になる人は使ってみてください。
Sokrates - polyglot source code examination tool
Sokrates(ソクラテス)はソースコードのドキュメンテーションや解析ができるツールです。
ソースコードをリポジトリ、Organization 単位で解析し、さまざまなメトリクスを可視化してくれます。
どういう内容かは Examples を見るのが早いです。Linux や Amazon、GitHub などさまざまな組織の解析結果が公開されています。
こういう解析はどう上手く使うかが課題になる気はしますが、こういうのを組織内で用意してみてもいいかもしれませんね(誰かが面白い結果を見つけてくれるかも)。Private なリポジトリも解析できるので、必ずしも OSS プロジェクトのみを対象にする必要はありません。有効活用したいですね。
korosuke613)も解析してみました
おまけ:僕の GitHub アカウント(
試しに僕の GitHub アカウント(korosuke613)を解析してみました
実際の解析結果を外から見られるようにしてみました。user の解析なのであんまり面白くない。(予告なく非公開にする可能性があります。)
生成のために具体的にやったこと
まずは zeljkoobrenovic/sokrates-oss-landscape-analysis を clone する。
次に analysis-scripts/config.json を書き換える。Personal Access Token は何の権限も必要なかった。API の rate limit 回避用のためと思われる。
{
"githubCloneUrl": "https://github.com",
"githubApiUrl": "https://api.github.com",
"githubToken": "<GITHUB_PERSONAL_ACCESS_TOKEN>",
"reposUpdatedAfter": "2017-01-01",
"pullsCreatedAfter": "2017-01-01",
"sokratesJarFilePath": "/tmp/sokrates-LATEST.jar",
"javaOptions": "-Xmx8G",
"githubOrgs": [
"korosuke613"
],
"ignore": [
{
"org": "",
"repo": "korosuke613.github.io"
}
]
}
このままだと org が対象となっているため、analysis-scripts/github-repos-finder/get-repos.js を一部以下のように書き換える。
@@ -6 +6 @@
- const gitRepoPrefix = config.githubApiUrl + '/orgs/';
+ const gitRepoPrefix = config.githubApiUrl + '/users/';
shell 実行。
bash run.sh
analysis-artifacts/reports/korosuke613/_sokrates_landscape/index.html
を開くと解析結果ページが表示される。
なんかおもしろグラフも出せるよ。
koneta 🍘
Productivity Weekly で出たネタを全て紹介したいけど体力が持たない、または、そんなに言うことがなかったネタを一言程度で書くコーナーです。
-
news 📺
-
[速報] サーバーレス実行環境である Cloudflare Workers のオープンソース化が発表されました! | DevelopersIO
- サーバーレス実行環境である Cloudflare Workers が OSS 化するとのこと
- まだ発表があっただけでリポジトリは公開されていません
- 自前でサーバーレス実行環境を作れるのは面白そうですね。楽しみ
-
GitHub Actions: Beta of Ubuntu 22.04 for GitHub-hosted runners is now available | GitHub Changelog
- GitHub Actions に Ubuntu 22.04 が来ました(ベータ)
-
ubuntu-latest
はまだ 20.04 のまま - 20.04 と 22.04 の環境で入ってるソフトウェアの違いはこちらの issue にまとまってる。https://github.com/actions/virtual-environments/issues/5490
-
[速報]「Docker Desktop for Linux」が登場、WindowsやMac版と同じ機能や操作を提供、Raspberry Pi OSにも対応 - Publickey
- Docker Desktop の Linux 版が登場
- Linux 版だけどセキュリティ上の理由で VM 内での実行になるとか
-
1Password 8 for Mac comes with Universal Autofill and a big redesign - The Verge
- 1Password 8 for Mac がネイティブアプリへの自動入力に対応しました
- 便利
-
ついにKubernetesからDockershimが正式に削除、Docker Engineのサポートが終了。今年最初のKuberenetes 1.24正式版がリリース - Publickey
- k8s 1.24 から Dockershim が入らなくなりました
- クラスタを自前で用意してる人なんかには影響ありそう
- マネージドサービスを使ってる人にはほぼ影響ないと思う
-
[速報] サーバーレス実行環境である Cloudflare Workers のオープンソース化が発表されました! | DevelopersIO
-
know-how 🎓
-
〜スタートアップの人たちに捧ぐ〜 監視再入門 in AWS - Speaker Deck
- AWS の中の人による、AWS 上に構築したサービスの監視に関するスライド
- なぜ監視するのか、監視の種類、重要な軸、ありがちなアンチパターン、AWS 上で小さく的確に監視していく方法、次のステップなどが説明されている
-
AWS全体のセキュリティ管理と快適なセキュリティ運用 - Speaker Deck
- クラメソさんによる AWS のセキュリティに関する発表
- AWS を直接使う人には「絶対おさえておく AWS セキュリティ基礎」、AWS を使う仕組みを作る人には「組織の仕組みに組み込むセキュリティ」、AWS を使える人を育成する人には「AWS 学習のお役立ちコンテンツ」が持ち帰れるとのこと
-
なるべく楽したいAWSセキュリティ
- Leaner Technologies Inc.さん所属の方による AWS のセキュリティに関する発表
- なるべく楽しながら AWS 利用を安全にしていくためにやれることを紹介している
-
〜スタートアップの人たちに捧ぐ〜 監視再入門 in AWS - Speaker Deck
-
tool 🔨
-
IaSQL
- AWS インフラを SQL で管理するサービス
- SQL に親しみのある方にとっては...いいのかも
-
Helmwave
- Helm チャートのデプロイを簡単にするツール
Helm チャートを作ったことないから正直あんまりわからない
-
無料で使えるデータベースUpstashをご存知、ないのですか!?
- Redis を提供する DBaaS、Upstash の紹介記事
- 比較的無料枠が大きいとのこと
- Weekly では
- Upstash のデータが EBS に載っていることについて、永続化して使うためのデータベースとしてそれでええんか...?というお話になりました
- kafka のマネージドサービスは珍しいという話にも
-
IaSQL
あとがき
先週号(2022/05/04 号)はゴールデンなウィークだったためお休みでした。みなさん GW はいかがお過ごしでしたか?僕はほぼゴロゴロしてて、1 日だけレンタサイクルを 20km 漕いで次の日に響きました。
サイボウズの生産性向上チームでは社内エンジニアの開発生産性を上げるための活動を行なっています。そんな生産性向上チームが気になる方は下のリンクをクリック!
omake 🃏
今週のおまけです。
未経験から100話でキラキラWEBデザイナーを諦めるかけだしちゃん完結「最初からずっと不穏だ…」 - Togetter
未経験から 100 話でキラキラ Web デザイナーを諦める連載漫画です。最近完結しました。
こういう駆け出し界隈の話にはあまり首を突っ込まないようにしているのですが、面白い漫画だったため共有します。現実はこんな感じがほとんどなんだろうな〜という印象でした。
(このお話は Web デザイナー(用語として合ってるかは知らん)を目指す人に主眼を置いてますが)プログラマーなんかに憧れてる人はちょくちょく周りでもみます。どうすれば未経験からプログラマーなれるの?ってたまに聞かれますが、実際どうすればいいんですかね。
正直、個人的な思想としては、情報系の大学通うのが良いよって言いたくなるんですが、実際のところ時間も金もかかるんでそこまでする人は珍しい(相当な覚悟を持ってる)ですよね。だから Progate なんかを触ってみて、楽しければ自然と探求し始めて仕事にまで持ってけるよって適当なことを言いがちです。そもそもプログラミングとか情報工学を楽しめないと続きませんからね。
この漫画のように質の悪いなんちゃってコーダーを量産する界隈は正直好きではありません。もちろんそこから立派なソフトウェアエンジニアになる方もいるとは思うし、中には素晴らしいスクールがあることもわかっています。あくまで未経験者を金ヅルとしてしか見ていない、食い物にしようとしているところに嫌悪感を抱いているという話です。
この界隈の話を始めると負の感情があふれてくるのでこれくらいにしておこう...
もし未経験でソフトウェアエンジニア系を目指す人はその筋の友人に相談するのが良いと思います。
-
API を叩く以上結構めんどかった。 ↩︎
Discussion