Upgrade to Pro — share decks privately, control downloads, hide ads and more …

モノレポなライブラリ群をCICDでデプロイした話

takas
April 22, 2023

 モノレポなライブラリ群をCICDでデプロイした話

2023年4月の.NETラボで発表した資料です。
デモのコード: https://github.com/Takas0522/dotnetlab-demos/tree/main/2023/03-monolib-deploy
発表の動画: https://www.youtube.com/live/FAwLd6eOTjc

takas

April 22, 2023
Tweet

More Decks by takas

Other Decks in Technology

Transcript

  1. 誰? Takas(@DevTakas) Angular / Azure / .NET Core / Azure

    DevOps / Microsoft Graph Microsoft MVP M365 Development
  2. Control One Utility 2.オーソドックスなCDを考えてみる • npmのコマンドを使用してバージョンアップ • npm version (major

    | minor | patch) ...コマンドの実行 • ただし上記コマンドを実行したいのは「変更あったものだけ」 • 変更:ライブラリコードの変更+依存ライブラリの変更 • たとえばregisty_packageイベントをトリガーにCIを作る? • CIの数めっちゃ多くなりそう JS(Angular)ライブラリの構成 Utility変更トリガーCI UtilityのCIトリガーCI CO変更トリガーCI …
  3. 3.お題を解決するためにツールを利用する • Turborepoと同じような設定内容 Lageの設定 module.exports = { pipeline: { build:

    { dependsOn: ["^build"], outputs: [ "dist/**" ] }, lint: [ "^lint" ], test: { dependsOn: ["build","^test"] } } };
  4. 3.お題を解決するためにツールを利用する • check • Git上の変更からChangeLogが発行されているかチェックする • CI上で実行すると便利 • change •

    git上変更からChangeLogを発行する • bump • publish時の挙動を確認できる • publish • Change Logを材料にPublish作業を行う • バージョンアップ修正/npm publish/CHANGELOG.mdの作成 を行ってくれる beachballの基本コマンド
  5. 参考ページ • monorepo.tools • https://monorepo.tools/ • ワークフローをトリガーするイベント - GitHub Docs

    • https://docs.github.com/ja/actions/using-workflows/events-that- trigger-workflows#registry_package • beachball • https://microsoft.github.io/beachball/ • lage • https://microsoft.github.io/lage/