[è£è¶³] ã¡ãã£ã¨ä¸éå端ã ã£ãã®ã§ã¤ãããªããããã« repository ã¯åé¤ãã¦ã¾ãã
éè¯ããã±ã¼ã¸ã¯ããã¾ã§æå ã§ããã±ã¼ã¸ã³ã°ã§ãããã¨ã確èªãã¦ããã ãã§ãããæå ã®ç°å¢ã«ä¾åãããªã«ããããã¨ãä»ã®äººãåãã¬ã·ãã使ã£ã¦ããããã±ã¼ã¸ã³ã°ã§ããªãå¯è½æ§ãããããã㧠CI ç°å¢ãç¨æãã¦ã¿ãã
scallywag
å ã Cygwin å ¬å¼ã«ã¯åãªãã¸ããªã® commit ã hook ãã¦ãããã±ã¼ã¸ã³ã°å¯è½ã§ããããæ¤è¨¼ãã scallywag ã¨ãã Web ã¢ããªãããã
ããã¤ã¯ããã¯ãããã¨ãç°å¢å¤æ°çµç±ã§æ¸¡ããã git repository ã clone ãã¦ããã㧠cygport all
ãå®è¡ããã
ã¡ãªã¿ã« AppVayor ã®ä¸ã§ git ãã¦ãå¥ã® repository ã®å¦çãåãããã¨ã å©ç¨è¦ç´ çã« OK ãªã®ãã¯ã¡ãã£ã¨èªã¿åããªãã£ã...ã(åããã㪠CI ã§ãã GitHub Actions ã®å©ç¨è¦ç´ ã§ã¯ ã¾ããã¢ã¯ã·ã§ã³ã¯æ¬¡ã®ç¨éã«ã¯ä½¿ç¨ããªãã§ãã ããã... gitHubã¢ã¯ã·ã§ã³ã使ç¨ããããªãã¸ããªã«é¢é£ããã½ããã¦ã§ã¢ããã¸ã§ã¯ãã®è£½é ããã¹ãããããã¤ãå
¬éã«é¢é£ããªããã®ä»ã®è¡çºã
ã¨ããããã大ä¸å¤«ããã«ã¯è¦ããã...ã)
ãã¯ã
ãã®ãã㪠scallywag ãåèã« yacp ã git clone ãã¦ãåããã¨ãããã¹ã¯ãªãããã¤ãã£ã¦ã¿ãã(åé¤æ¸)
ãã® appveyor.yml
ãç°å¢å¤æ°ã渡ãã¦ãããã¯ããã(æ¹è¡ã¯èªã¿ãããããããã«é©å½ã«å
¥ãã¦ããã)
$ curl \ -H 'Authorization: Bearer ********' \ -H "Content-Type: application/json" \ -X POST https://ci.appveyor.com/api/builds -d '{ "accountName":"fd00", "projectSlug":"galuf", "branch":"master", "environmentVariables":{ "PACKAGE":"uriparser", "NEW_VERSION":"0.9.4", "CYGWIN_PACKAGES":"libgtest-devel,cmake,ninja" } }'
å®éã®å®è¡çµæã¯ä»¥ä¸ã®éãã§ããã(åé¤æ¸)
æåã« setup.exe ã§å¿
è¦ãªããã±ã¼ã¸ãã¤ã³ã¹ãã¼ã«ãããä»åã対象ã¨ãã uriparser 㯠cmake
(㨠ninja
) ããã«ããã¼ã«ã¨ãã¦ä½¿ããããããããã¤ã³ã¹ãã¼ã«ããããã«ç°å¢å¤æ°çµç±ã§æå®ãããlibgtest-devel
ãå¿
è¦ã§ããããããã¯å
¬å¼ã§ã¯é
å¸ããã¦ããªããã®ã§ãããããS3 ã«ç½®ãã¦ãããã¨ã«ããã(ç½®ãæ¹ã«ã¤ãã¦ã¯å¾è¿°ããã)
å¿
è¦ãªããã±ã¼ã¸ã®ã¤ã³ã¹ãã¼ã«ãçµãã£ãããæ¬ä½ã§ãã galuf.rb
ãèµ·åããã
ä¸ã§ã¯ git clone
ããããé«éåã®ããã« sparsecheckout ã pull æã® --depth ãªãã·ã§ã³ ã使ç¨ãã¦ããã
ãã¨ã¯ cygport
ã³ãã³ãã§å®éã«ããã±ã¼ã¸ã³ã°ããã¦ã¿ã¦ãæåããããã£ã¬ã¯ããªã tar.gz ã§åºãã¦ãã¢ã¼ãã£ãã¡ã¯ãã¨ãã¦ããã¦ã³ãã¼ãã§ããããã«ããã
S3
ä¸è¿°ã®éãããã«ããä»ã®éè¯ã®ããã±ã¼ã¸ã«ä¾åãã¦ããå ´åã«ã¯ãå ã«ãã®ããã±ã¼ã¸ã setup.exe ã§ã¤ã³ã¹ãã¼ã«ã§ããå ´æã«å ¬éãã¦ããå¿ è¦ãããã
æå ã«ãã yacp ã®ãã¤ããªã¯è¨ 8G ãããã§ããããå ¨é¨ç¡æã§ç°¡åã«å ¬éã§ããå ´æã¨ããã®ã¯ãããã«è¦å½ãããªãã(ãã¡ãã¨æ¢ãã¦ãªããã©ã)
ã¾ãã以ä¸ã®æ¡ä»¶ãããã¨ãããã S3 ã«ç½®ããã¨ã«ããã
- å ã ã½ã¼ã¹ã«å梱ã®ãã¼ã¿ãåé å¸ç¦æ¢ã®ãããçµæçã«ãã¤ããªããã±ã¼ã¸ãé å¸ç¦æ¢ã«ãªã£ã¦ãããã®ãããã(ããã¯ãã¤ããªããã±ã¼ã¸ããåãé¤ãã°ã解決ããæ°ããããã©ãããã©ãã®ã§æªçæã)
- AppVeyor 以å¤ããã¯ã¢ã¯ã»ã¹ã§ããªãããã«ãããã(ä¸ç¹å®å¤æ°ã«ãã©ã¼ã¨ãã¦ä½¿ãããã¨éä¿¡æã§æ»ã¬ã)
åè ã«ã¤ãã¦ã¯å¿ è¦ãªããã±ã¼ã¸ã ãã®ããªã¼ãã¤ãã£ã¦ mksetupini ããã°è¯ãããå¾è ã¯ãã±ããããªã·ã¼ã®è¨å®ã§è§£æ±ºã§ããã
ãã±ããããªã·ã¼ã®è¨å®ã«ã¤ãã¦ã¯ä»¥ä¸ãåç §ããããã
AppVeyor ã® IP ã¢ãã¬ã¹ç¾¤ã¯ä»¥ä¸ã§å ¬éããã¦ããã
ãããã®è¨å®ããããã±ããã«å¿ è¦ãªããã±ã¼ã¸ãã¢ãããã¼ãããã
$ mksetupini -v --arch x86_64 --inifile ./x86_64/setup --okmissing required-package --releasearea . $ zstd -f ./x86_64/setup $ aws s3 sync x86_64 s3://bucket-for-appveyor/x86_64 --acl public-read --delete --exclude setup
åæ©
ãã«ãã®ä¾åé¢ä¿ãå¿ è¦ãªã®ã«æ¸ãã¦ãªãã¨ããææããã£ããããä»åãããæ§ç¯ããã«è³ã£ãã
åã ããæ§æ³ã¯ãã£ãããããã¾ãããæ°ãåºãªãã§ãããããæ¾ç½®ãã¦ãããããããããã£ããã«ãªã£ãã¨ãã話ã§ãã