Monorepoã¨ã¯ï¼Ÿ Monorepo(モノレãƒ)ã¨ã¯ã€ã‚¢ãƒ—リケーションやマイクãƒã‚µãƒ¼ãƒ“スã®å…¨ã‚³ãƒ¼ãƒ‰ã‚’å˜ä¸€ã®ãƒ¢ãƒŽãƒªã‚·ãƒƒã‚¯ãªãƒªãƒã‚¸ãƒˆãƒª (普通㯠Git) ã«ä¿å˜ã™ã‚‹ãƒ‘ターンを指ã—ã¾ã™ã€‚ 一般的ã«ã¯ã€ã•ã¾ã–ã¾ãªã‚¢ãƒ—リ コンãƒãƒ¼ãƒãƒ³ãƒˆã®ã‚³ãƒ¼ãƒ‰ã‚’サブフォルダーã«åˆ†å‰²ã—ã€æ–°æ©Ÿèƒ½ã‚„ãƒã‚°ä¿®æ£ã«ã¯ Git ワークフãƒãƒ¼ã‚’使用ã—ã¾ã™ã€‚ モノリシック アーã‚テクãƒãƒ£ã§ã‚¢ãƒ—リケーションやシステムを開発ã™ã‚‹ã®ã§ã‚ã‚Œã°ã€ãŸã„ã¦ã„ã¯ã€ã“ã†ã—ãŸã‚¢ãƒ—ãƒãƒ¼ãƒã‚’自然ã¨æŽ¡ç”¨ã™ã‚‹ã“ã¨ã«ãªã‚Šã¾ã™ã€‚ 通常ã€ã“ã®ã‚ˆã†ãªMonorepoã§ã¯ã€ã‚³ãƒ¼ãƒ‰ã‹ã‚‰å®Ÿè¡Œå¯èƒ½ãªã‚¢ãƒ—リケーションを生æˆã™ã‚‹ãƒ“ルド パイプラインも 1 ã¤ã ã‘ã§ã™ã€‚ã“ã®æ‰‹æ³•ã¯ã€ãƒ¡ãƒ³ãƒ†ãƒŠãƒ³ã‚¹ã¯ã—ã‚„ã™ã„ã®ã§ã™ãŒã€å…¨ä½“çš„ãªé–‹ç™ºé€Ÿåº¦ã¯è½ã¡ã¾ã™ã€‚ä¿®æ£ã«æ‰‹é–“ã®ã‹ã‹ã‚‹ãƒã‚°ãŒå°‘ã—ã‚ã‚‹ã ã‘ã§ã€ãƒªãƒªãƒ¼ã‚¹å€™è£œç‰ˆã‚’本番環境ã«ãƒ‡ãƒ—ãƒã‚¤ã§ããªããªã£ã¦ã—ã¾ã†ã‹ã‚‰ã§ã™ã€‚ ã“ã®è¨˜äº‹ã§ã¯ã€Monorepoã¨
Polyrepoã¨Monorepo ã“ã‚Œã¯ã‚¢ã‚½ãƒ“ãƒ¥ãƒ¼ï¼ Advent Calendar 2022ã®23日目ã§ã™ã€‚ アソビューã§VPoEå…¼Tech Leadã‚’ã—ã¦ã„ã‚‹disc99ðŸ¼ã§ã™ï¼ 今回ã¯ã€Monorepoé‹ç”¨ã®äº‹ä¾‹ç´¹ä»‹ã‚’ã•ã›ã¦ã‚‚らãˆã‚Œã°ã¨æ€ã„ã¾ã™ï¼ アソビューã§ã¯ã»ã¼ã™ã¹ã¦ã®Gitリãƒã‚¸ãƒˆãƒªã‚’çµ±åˆã—ãŸMonorepoé‹ç”¨ã‚’2年以上行ã£ã¦ã„ã¾ã™ã€‚ 最近ã§ã¯ç‰¹å®šã®æŠ€è¡“é ˜åŸŸã‚„ãƒ—ãƒãƒ€ã‚¯ãƒˆã«å¯¾ã—ã¦Monorepoã‚’é©ç”¨ã—ãŸäº‹ä¾‹ã¯å¢—ãˆã¦ãã¦ã„ã¾ã™ã€‚ ã—ã‹ã—ã€ç¤¾å†…ã®ã»ã¼ã™ã¹ã¦ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’1ã¤ã®Monorepoã§ç®¡ç†ã—ã¦ã„る組織ã¯ã¾ã 多ããªã„ã¨æ€ã„ã¾ã™ã®ã§ã€å‚考ã«ãªã‚Œã°å¹¸ã„ã§ã™ã€‚ 今回ã¯ãªãœMonorepoã«ç§»è¡Œã—ãŸã‹ã‚„ã€å…·ä½“çš„ã«ã©ã®ã‚ˆã†ãªç®¡ç†ã‚’ã—ã¦ã„ã‚‹ã‹ã€ã¾ãŸä»Šå¾Œã®å±•æœ›ãªã©ã‚’公開ã—ã¾ã™ï¼ ðŸ£ãªãœMonorepoãªã®ã‹ 背景 Monorepoã¨ã¯ï¼Ÿ ç´ æ—©ã• åˆ†ã‹ã‚Šã‚„ã™ã• 管ç†ã®ã—ã‚„ã™ã• ãã®
Note 本記事ã®å†…容㯠Linus æ°ã®ç™ºè¨€ãŒäººã‚’å‚·ã¤ã‘ã‚‹å ´åˆã«ç†è€…ãŒãれを良ã—ã¨è€ƒãˆã‚‹ã¨ã„ã£ãŸæ„図ã¯ã”ã–ã„ã¾ã›ã‚“ å°‘ã—å¤ã„記事ã«ãªã‚‹ãŒã€ Linus Torvalds æ° ã® GitHub ã«å¯¾ã™ã‚‹è‹¦è¨€ãŒè¨˜äº‹ã«ãªã£ã¦ã„ãŸã€‚ Linuxカーãƒãƒ«ã«NTFSドライãƒãƒ¼ãŒè¿½åŠ ã€ãƒˆãƒ¼ãƒãƒ«ã‚ºæ°ã¯GitHub経由ã®ãƒžãƒ¼ã‚¸ã«è‹¦è¨€ - ZDNet Japan Linus æ°ãŒ GitHub ã«ã¤ã„ã¦è‹¦è¨€ã‚’呈ã™ã‚‹ã®ã¯ä»Šã«å§‹ã¾ã£ãŸã“ã¨ã§ã¯ãªã„(後述)ãŒã€ 別㫠GitHub ã®ã™ã¹ã¦ã‚’å¦å®šã—ã¦ã„ã‚‹ã‚ã‘ã§ã¯ãªã„。[1] ã§ã¯ä¸€ä½“何ãŒä¸æº€ãªã®ã‹ã€‚Linus æ°ã®ç†æƒ³ã¨ã™ã‚‹ git ã®é–‹ç™ºãƒ•ãƒãƒ¼ã‚’考察ã—ãŸä¸Šã§ã€æ•´ç†ã—ã¦ã¿ãŸã„。 Linus æ°ã®ç†æƒ³ çµè«–ã‹ã‚‰ã„ã†ã¨ã€ 「æ„味ã‚るコミットを作れã€ã€Œã‚³ãƒŸãƒƒãƒˆã‚’大事ã«ã—ã‚〠ã¨ã„ã†æ€æƒ³ãŒä¼ºãˆã‚‹ã€‚ ã§ã¯ 「æ„味ã‚るコミットã€ã€Œå¤§äº‹ã«ã•ã‚ŒãŸã‚³ãƒŸãƒƒãƒˆã€ ã¨ã¯ä½•ãªã®ã‹ã€‚ ç†è€…ãª
ã€Git入門】git stashã§ä½œæ¥ã‚’便利ã«é€€é¿ã™ã‚‹ ã¯ã˜ã‚ã« ã“ã‚“ã«ã¡ã¯ã€tuq376sã§ã™ã€‚ 今回ã¯Gitã§ç®¡ç†ã—ã¦ã„るディレクトリã§ã®ä½œæ¥ã‚’ã¡ã‚‡ã“ã£ã¨ä¸æ–ã—ãŸã„å ´åˆã«ä¾¿åˆ©ãªgit stashコマンドã«ã¤ã„ã¦ã€ 基本ã¨ä¾¿åˆ©ãªã‚ªãƒ—ションã®ä½¿ã„方をä¸å¿ƒã«ç´¹ä»‹ã—ã¦ã„ããŸã„ã¨æ€ã„ã¾ã™ã€‚ Gitã®ä½¿ã„æ–¹ã€git commitã®å–り消ã—æ–¹ã€git cloneを知りãŸã„æ–¹ã¯ä»¥ä¸‹ãƒ–ãƒã‚°ã‚‚ã”一èªãã ã•ã„ ・ ã€è¶…入門】åˆå¿ƒè€…ã®ãŸã‚ã®Gitã¨GitHubã®ä½¿ã„æ–¹ - RAKUS Developers Blog | ラクス エンジニアブãƒã‚° ・ ã€Git入門】git commitã‚’å–り消ã—ãŸã„ã€å…ƒã«æˆ»ã™æ–¹æ³•ã¾ã¨ã‚ - RAKUS Developers Blog | ラクス エンジニアブãƒã‚° ・ ã€Git入門】git cloneã§æ—¢å˜ãƒªãƒã‚¸ãƒˆãƒªã‚’クãƒãƒ¼ãƒ³ã—よã†ï¼ - RAKUS Developers Blo
ç ”ä¿®è³‡æ–™ãƒ»å‹•ç”»ä¸€è¦§gitç ”ä¿®ï¼ˆå‹•ç”»ã€ã‚¹ãƒ©ã‚¤ãƒ‰ï¼‰ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ç ”修(動画ã€ã‚¹ãƒ©ã‚¤ãƒ‰ã€SQL演習環境)è¨è¨ˆãƒ»ãƒ†ã‚¹ãƒˆç ”修(動画ã€ã‚¹ãƒ©ã‚¤ãƒ‰ï¼‰iOSã‚¢ãƒ—ãƒªé–‹ç™ºç ”ä¿®ï¼ˆå‹•ç”»ã€ã‚¹ãƒ©ã‚¤ãƒ‰ã€ãƒªãƒã‚¸ãƒˆãƒªï¼‰Androidã‚¢ãƒ—ãƒªé–‹ç™ºç ”ä¿®ï¼ˆå‹•ç”»ã€ã‚¹ãƒ©ã‚¤ãƒ‰ã€ãƒªãƒã‚¸ãƒˆãƒªï¼‰ãƒ•ãƒãƒ³ãƒˆã‚¨ãƒ³ãƒ‰ç ”修(動画ã€ã‚¹ãƒ©ã‚¤ãƒ‰ã€ãƒªãƒã‚¸ãƒˆãƒªï¼‰ã‚²ãƒ¼ãƒ 開発(Unityï¼‰ç ”ä¿®ï¼ˆå‹•ç”»ã€ã‚¹ãƒ©ã‚¤ãƒ‰ï¼‘ã€ã‚¹ãƒ©ã‚¤ãƒ‰ï¼’ã€ã‚¹ãƒ©ã‚¤ãƒ‰ï¼“ã€ã‚¹ãƒ©ã‚¤ãƒ‰ï¼”ã€ã‚¹ãƒ©ã‚¤ãƒ‰ï¼•ã€ãƒªãƒã‚¸ãƒˆãƒªï¼‰gitç ”ä¿®ãƒãƒ¼ãƒ 開発ã§ã®Git(+GitHub)ã®ä½¿ã„æ–¹ã¨Gitã®å†…部的ãªæŒ™å‹•ã«ã¤ã„ã¦ã®è¬›ç¾©ã¨ã€Git Challengeã‹ã‚‰åŽ³é¸ã—ãŸå•é¡Œã‚’解ããƒãƒ³ã‚ºã‚ªãƒ³ã€‚ 講義部分ã®å‹•ç”»ã¨ã‚¹ãƒ©ã‚¤ãƒ‰ã‚’公開ã—ã¦ã„ã¾ã™ã€‚
git pullを実行ã™ã‚‹éš›ã«ã€ãƒãƒ¼ã‚«ãƒ«ã§æœªã‚³ãƒŸãƒƒãƒˆã®å¤‰æ›´ã«å¯¾ã—ã¦ã€ãƒªãƒ¢ãƒ¼ãƒˆã®çŠ¶æ…‹ã§ä¸Šæ›¸ãã›ãšã€ãƒãƒ¼ã‚«ãƒ«ã§ã®å¤‰æ›´ã‚’ä¿æŒã—ãŸã„å ´åˆã‚„ã€ã‚„ã£ã±ã‚Šãƒªãƒ¢ãƒ¼ãƒˆã®å¤‰æ›´ã§ä¸Šæ›¸ãã—ãŸããªã£ãŸå ´åˆã®å¯¾å‡¦æ–¹æ³•ã«ã¤ã„ã¦ã®ã”紹介ã§ã™ã€‚ ã“ã‚“ã«ã¡ã¯ã€CX事æ¥æœ¬éƒ¨ã®è‹¥æ§»ã§ã™ã€‚ git pullを実行ã™ã‚‹éš›ã«ã€ãƒãƒ¼ã‚«ãƒ«ã§æœªã‚³ãƒŸãƒƒãƒˆã®å¤‰æ›´ã‚’リモートã«åæ˜ ã•ã›ãšãƒãƒ¼ã‚«ãƒ«ã§ã ã‘ä¿æŒã—ãŸã„å ´åˆãŒã‚ã‚Šã¾ã™ã€‚ 例ãˆã°ã€ä»¥ä¸‹ã®ã‚ˆã†ã«hoge.txtã®å¤‰æ›´ãŒãƒãƒ¼ã‚«ãƒ«ã§è¡Œã‚ã‚Œã¦ã„ã¾ã™ãŒã€ã“ã®å¤‰æ›´ã¯ãƒªãƒ¢ãƒ¼ãƒˆã«ã¯åæ˜ ã—ãŸããªã„ãŸã‚ã€æœªã‚³ãƒŸãƒƒãƒˆã¨ã—ã¦ã„ã¾ã™ã€‚ $ cat hoge.txt ãƒãƒ¼ã‚«ãƒ«ã§ã®å¤‰æ›´ $ git fetch $ git diff remotes/origin/master diff --git a/hoge.txt b/hoge.txt index 48ee78d..e3130ae 100644 --- a/hoge.t
CIデモ環境 æ§‹ç¯‰æ‰‹é †æ›¸ ã“ã®æ‰‹é †æ›¸ã§ã¯Jenkinsã€Ansibleã€Serverspecã€GitLabを利用ã—ãŸCI(Continuous Integration)デモ環境を構築ã™ã‚‹æ‰‹é †ã‚’ã¾ã¨ã‚ã¦ã„ã¾ã™ã€‚ https://github.com/virtualtech/ci-demo 本書ã®æ‰‹é †ã«å¾“ã£ã¦ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—ã™ã‚‹ã“ã¨ã§ã€ã‚¢ãƒ—リケーションã®ãƒ‡ãƒ—ãƒã‚¤ã‚„システムã®çŠ¶æ…‹ã®ç¢ºèªã€ç®¡ç†ã‚’è¡Œã†ãŸã‚ã®Jenkinsã€Jenkinsã‹ã‚‰æŒ‡ç¤ºã‚’å—ã‘ã¦ã‚¢ãƒ—リケーションデプãƒã‚¤ãƒ¡ãƒ³ãƒˆã‚’実際ã«å‡¦ç†ã™ã‚‹Ansibleã€ãã—ã¦AnsibleãŒå®Ÿè¡Œã™ã‚‹å‡¦ç†ã‚’記述ã—ãŸã‚¹ã‚¯ãƒªãƒ—トã§ã‚ã‚‹Ansible Playbookを管ç†ã™ã‚‹Gitlab環境を構築ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ æ‰‹é †æ›¸ã§ä½¿ã£ã¦ã„るソースファイルã¯ã€ãƒªãƒã‚¸ãƒˆãƒªãƒ¼ã«ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã•ã‚ŒãŸæ¬¡ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’利用ã—ã¦ãã ã•ã„。 ci-demo-src.zip spec-dem
リリースã€éšœå®³æƒ…å ±ãªã©ã®ã‚µãƒ¼ãƒ“スã®ãŠçŸ¥ã‚‰ã›
最新ã®äººæ°—エントリーã®é…ä¿¡
処ç†ã‚’実行ä¸ã§ã™
j次ã®ãƒ–ックマーク
kå‰ã®ãƒ–ックマーク
lã‚ã¨ã§èªã‚€
eコメント一覧を開ã
oページを開ã
{{#tags}}- {{label}}
{{/tags}}