Cybozu Productivity News

#1 - 2022.03.17

GitHubのMarkdownでMermaid.jsの記法でダイアログが書けるようになりました

共有担当: @miyajan

GitHub Actions において JavaScript action で node16 が使えるようになってた

共有担当: @korosuke613

GitHub Actions のアクションの種類の一つに JavaScript action があります。あらかじめ設定しておいた任意の JS を jobs.<job_id>.steps[*].uses から呼び出せるというものなのですが、これまでは実行ランタイムが Node.js の v12 系しか選択できませんでした。しかし、去年末より Node.js 16 が JavaScript action で利用できるようになっていました。これにより、131, 142, 153, 164 系の機能(Optional chaining、AbortController など)が JavaScript action において利用できるようになりました。

actions.yaml の runs.usingnode16 を指定することでその JavaScript action が Node.js 16 で動きます(参考)。ちなみに、現在指定できるのは node12node16 のみです。Node.js 14 (node14)は指定できません。

Node.js 12 は 2022/04/30 でサポートが終了する予定なので、それに備えた対応と言えます。サポートが切れた途端に Node.js 12 を指定した JavaScript action が使えなくなるということは無いと思いますが、JavaScript action 開発者はサポート終了に備えて早めに Node.js 16 に上げる対応をしておくことをお勧めします5。ちなみに、公式アクションで知られる actions/checkoutactions/setup-node などの actions 配下のアクションは最近軒並み node16 へ変更されていました。

GitHub Actions で internal リポジトリに置いたアクションが共有できるようになりました

共有担当: @miyajan

  • GitHub Enterprise Cloud で internal リポジトリに置いたアクションに、同じ Organization(Enterprise) 内の private または internal なリポジトリからアクセスできるようになりました
    • これまでアクションを他リポジトリと共有するには public にする必要があったので、組織内でアクションを共有するのが難しかったのですが、共有しやすくなりました
    • Organization をまたいでも同じ Enterprise 内なら共有できるのも嬉しいですね
  • リポジトリの設定で Organization(Enterprise) 内のリポジトリのワークフローからのアクセスを許可する必要があります

GitHubでMarkdownファイルを開くときに平文表示が可能に

共有担当: @gkzvoice

やってみました。

CircleCIのFreeプランでできることが増えた

共有担当: @korosuke613

CircleCI の Free プランでできることが増えました。例えば、これまで最大1並列でしか実行できなかったジョブが30並列まで同時実行できるようになったり、Freeプランでは使えなかったセルフホストランナーやプライベート Orb、macOS Executor が使えるようになったりできるようになりました。これまで以上にFreeプランでヘビーに使っていけそうという印象です。

ただし、できることが増えただけでなく、ネットワークやストレージが新たに課金対象となった6ため、これまで通りビルドしているとFreeプランでは賄いきれなくなる可能性もあり、注意が必要です。

各プランの比較はこちらのページに載っています。https://circleci.com/ja/pricing/

Docker Desktopの新たな乗り換え候補、Rancher Desktop

共有担当: @ganta0087

Rancher DesktopはDocker Desktopと同様の使い勝手で、GUIからDockerホストとなる仮想マシンのリソースを変更したり、pull済みのイメージの管理などができます。
Apache License 2.0のOSSとして公開されています。

Rancher Desktop自体は2021年5月に登場していましたが、コンテナのランタイムとしてcontainerdにしか対応してしませんでした。
2021年12月になってdockerdにも対応した0.7.0がリリースされ、2022年1月に1.0.0として正式リリースされました。

デフォルトでKubernetesも動作するようになっていますが、2022年3月にリリースされた1.1.0ではKubernetesの有効・無効を選択できるようになりました。

M1 Macにも対応していますが、ネームサーバーの設定に問題があり、ワークアラウンドが必要です。

また、同時起動しなければDocker Desktopと共存できるのですが、クレデンシャルストアの設定が標準でDocker Desktopになっているため、Rancher Desktop利用時はdocker loginが使えなくなります。
これはKeychainを使うように変更すれば動作するようになります。

Serverless Framework が v3 にメジャーアップデート

共有担当: @gkzvoice

v3の機能紹介は Serverless Frameworkのオフィシャルブログ でされているのでそちらをぜひ! ちなみに serverless-dotenv-plugin というプラグインがv2からv3へバージョンを引き上げたところうまく動かないという事象に遭遇しました、、

Jest互換のテストフレームワークVitestで快適にテストする

共有担当: @akihisa1210

  • VitestはJestとの互換性をもつテストフレームワークです。
    • (注意)Vitestは開発中のツールで、本番環境での使用はまだ推奨されていません。
    • 公式サイト
    • 紹介動画
  • 公式のExample集はこちら。ブラウザ上から試せます。
  • Viteでビルドを行っていない環境でもVitest単体で導入できます。
    • 始めからTypeScriptをサポートしています。
    • Viteと併用する場合は設定ファイルが1つにまとまります。
  • Jestからの移行を試すときは公式の移行ガイドから。
  • vitest watchでVitestを起動し、ファイル変更時にそのファイルにだけテストを流すのが快適です。
  • Vitestはテストコードの型検査をしません。型検査には別のツールを使いましょう。

We are hiring

サイボウズの開発者の生産性を上げる「生産性向上チーム」とは!?

Footnotes

  1. 参考 Node.js v13の主な変更点 - 別にしんどくないブログ

  2. 参考 Node.js v14の主な変更点 - 別にしんどくないブログ

  3. 参考 Node.js v15の主な変更点 - 別にしんどくないブログ

  4. 参考 Node.js v16の主な変更点 - 別にしんどくないブログ

  5. 実際 Node.js 12 のサポートが切れた後に GitHub はどういう対応を取るんですかね。これまでのアクションが動かなくなる事態は避けると思うので、当分 Node.js 12 でも JavaScript action が動くようにはすると思うのですが、さすがにいつかは Node.js 12 で動かなくなるようにするんですかね?

  6. 公式の発表は見つけられなかったが、よくある質問によると 2022 年 3 月 1 日より有効になる予定とのこと。 https://circleci.com/docs/ja/2.0/faq/#how-do-I-calculate-my-monthly-storage-and-network-costs