ããã«ã¡ã¯ãkubotakã§ãã
å¼ç¤¾ã§ã¯ãéçºç°å¢ã®æ§ç¯ã«Makefileãã¿ã¹ã¯ã©ã³ãã¼ã¨ãã¦å©ç¨ãã¦ãã¾ããã
ããããäºã¦ããMakefileã¯ãã³ã³ãã¤ã«ãä¾åé¢ä¿ã®ç®¡çãã¤ã³ã¹ãã¼ã«ãªã©ã®ã«ã¼ã«ãè¨è¿°ãã¦ããããã®ãã¡ã¤ã«ãã§ãããããã¿ã¹ã¯ã©ã³ãã¼ã¨ãã¦å©ç¨ãã¦ããç¾ç¶ã«ã¯éåæãæãã§ãã¾ããã
弿°ã®åãåããhelpï¼list表示ï¼ãªã©ã²ã¨æéå¿
è¦ã§ãæ¬æ¥ã®åå¨ã¨ã¯ç°ãªãå©ç¨ã®ããããã¯ãªä½¿ãæ¹ããã¦ãã¾ããã
Qiitaã®ä»¥ä¸ã®è¨äºãåèã«Makefileããã¾ããã
Task
Taskã¯ã¿ã¹ã¯ã©ã³ãã¼ã»ãã«ããã¼ã«ã§GNU Makeãã使ãããããã®ãç®æãããããã¯ãã ããã§ãã
Goè¨èªã«ããä½ããã¦ããã®ã§å©ç¨è
å´ã¨ãã¦ã¯ï¼ãã¤ããªã§æ¸ãã®ã§ã»ãã®ä¾åã¯ããã¾ããã
MacOSã§ããã°Brewã§ã¤ã³ã¹ãã¼ã«å¯è½ãªã®ã§æè»½ã«ä½¿ããã¨ãã§ãããã§ãã
ã¿ã¹ã¯ã¯Taskfile.ymlã«ãã管çãã¾ãã
ä¾ï¼å ¬å¼ãµã¤ãããå¼ç¨ï¼
version: '3' tasks: hello: cmds: - echo 'Hello World from Task!' silent: true
ç°¡åã«è¨è¿°ã§ãã¦task --listã¨å®è¡ãããã¨ã§ã³ãã³ãã®ä¸è¦§ã表示ã§ããã®ã§ä½¿ãåæãè¯ãã§ãã
ã¾ãã説ææã追å ãã¦ããã¨list表示ã§ã¯ä¾¿å©ã§ãã
version: '3' tasks: up: desc: 'éçºç°å¢ã®èµ·å' cmds: - docker compose up -d
% task --list task: Available tasks for this project: * up: éçºç°å¢ã®èµ·å
弿°ãå¿ è¦ãªå ´åãç°¡åã«è¨è¿°ã§ãã¾ã
test: desc: 'ãã¹ãå®è¡' cmds: - docker compose exec app bash -i -c "npm run test {{.CLI_ARGS}}"
ã³ãã³ãå®è¡ã¯ä»¥ä¸ã®ãããªæã
task test -- path/to/test.spec.ts
ã¾ã¨ã
ããã¸ã§ã¯ãã®ã³ãã³ãä¸è¦§ãTaskã«ç§»è¡ãã¦ãä¸é±éã»ã©ä½¿ã£ã¦ãã¾ããç¹ã«ä¸é½åãªã使ãã¦ãã¾ãã
æçã§makeã¨æã£ã¦ãã¾ã£ãããå¥ã®ããã¸ã§ã¯ãã§ã¯ã¾ã Makefileã ã£ããããã®ã§ãã¡ããTaskã«ç§»è¡ãã¦è¡ãããã¨æãã¾ãã
è¤æ°äººã§éçºããéã¯ä¾¿å©ãªã³ãã³ãããã使ãã³ãã³ãã説æããªãã¨ããããããªãã³ãã³ããªã©ã¯Taskã«éç´ããã¨ä¾¿å©ã«ãªããã¨æãã¾ããããããã§ãï¼