é»åæ¸ç±å·çç°å¢ã«CIãå°å ¥ãEPUBããã«ããã¦Dropboxã«éã
æè¿ã次ã®ä½åã®å·çããã¦ããã®ã§ãããæ £ãã¨ã¯æãããã®ã§ãRakeãå©ç¨ããèªåãã«ãã§ããé¢åã«ãªã£ã¦ãã¦ãã¾ããCIãæ¬²ããã¨æãããã«ãªãã¾ããã
è¤æ°äººã®ããã¸ã§ã¯ããªãããããããèªåä¸äººã®å·çã®ããã«CIç°å¢ãæ´ããã®ã¯ãã©ããããéããªæ°ããã¦ããã®ã§ãããCircleCIã1ã³ã³ããã¾ã§ç¡æã«ãªã£ãã¨ãèããæ°ã«ãªã£ã¦ãããããå·çã®æ¯æãã«CIç°å¢ãç°¡åã«æ´ãã¦ã¿ã¾ããã
CircleCIã§EPUBããã«ããã
æ¢ã«Rakefileãæ¸ãã¦ãããããCircleCIãå©ç¨ãã¦EPUBããã«ãããã®ã¯ãã¨ã¦ãç°¡åã§ããã
test: override: - rake md2review epub
ä¸è¨ã®ãããªcircle.yml
ãã¡ã¤ã«ãã³ããããã¦GitHubã¸pushãã¦ãããå¾ã¯CircleCIã«ãã°ã¤ã³ãã¦ãGitHubã®ãªãã¸ããªã鏿ããã ãã§ãã
ç¡äºã«ãã«ããéãã°ãStatus Successã«ãªãã¾ãã
ãã«ãããEPUBãã¡ã¤ã«ãDropboxã«éã
ããã ãã§ã¯å°ãé¢ç½ãããã¾ãããã©ãããªãããã«ãããEPUBãã¡ã¤ã«ãä½ãããã®æ¹æ³ã§åãåããããã®ã§ããããã§ãæ¹æ³ãèãã¦ã¿ãçµæãDropboxã«ãã¡ã¤ã«ãéãã¨ããæ¹æ³ãæè»½ããã ã¨æããã®ã§è©¦ãã¦ã¿ã¾ããï¼ä»ã«ã¯GoogleDriveã«éãã¨ããã®ãèãã¾ããï¼ã
Dropboxãæä¾ãã¦ããAPIã調ã¹ã¦ã¿ãã¨ãRubyã«ããããã¥ã¡ã³ãããã£ãããããã¡ããåèã«ãã¦ãRakefileã«çµã¿è¾¼ãã§ã¿ããã¨ã«ãã¾ããã
ã¾ããdropbox_sdkã®Gemãã¤ã³ã¹ãã¼ã«ãã¦ããå¿
è¦ãããã¾ãã®ã§ãGemfileã«gem "dropbox-sdk"
ã追è¨ãã¦ãbundle install ãã¦ããã¾ãã
ãã®ä¸ã§ãRakefileã«æ¬¡ã®ãããªå 容ã追è¨ãã¾ããã
require 'bundler/setup' require 'dropbox_sdk' desc 'send to dropbox' task :send_to_dropbox do client = DropboxClient.new(oauth2_access_token) now = Time.now.strftime("%Y%m%d%H%M%S") response = client.put_file("/#{bookname}_#{now}.epub", open("#{bookname}.epub")) puts "uploaded:", response.inspect end
oauth2_access_token
ã«ã¯App Consoleã§ä½æããã¢ããªã®ãSettingsã¿ããOAuth 2ãã®é
ç®ã«ããGenerated access tokenä¸ã®Generateãã¿ã³ãæ¼ãã¦åå¾ã§ãããã¼ã¯ã³ãè¨å
¥ãã¾ãã
ããã¦ãã¼ã«ã«ãã·ã³ã§ã
$ rake md2review epub send_to_dropbox
ä¸è¨ã®ã³ãã³ããå®è¡ããã¨ãç¡äºã«~/Dropbox/ã¢ããª/ã¢ããªå
ãã£ã¬ã¯ããªã«ãEPUBãã¡ã¤ã«ã使ããããã¨ã確èªã§ãã¾ããã
ããã§ãcircle.yml
ã®å
容ãã
test: override: - rake md2review epub send_to_dropbox
ä¸è¨ã®ããã«æ¸ãæãã¦Rakefileã¨ä½µãã¦ã³ãããããGitHubã¸pushããã¨ãCircleCIãåä½ãã¦Dropboxã«EPUBãã¡ã¤ã«ãéããã¦ãã¾ããã
ã¾ã¨ã
Re:VIEWã«ããé»åæ¸ç±å·çç°å¢ãæ´ãã¦ããç§ã«ã¨ã£ã¦ãCircleCIã®å°å ¥ã¯æåæãããã»ã©ç°¡åã§ãããã¾ãDropboxã«ãããã¡ã¤ã«å ±æãAPIãæ´åããã¦ããããæ°è¡ã®ã³ã¼ãã§å®ç¾ã§ããã¨ã¦ã便å©ãªæä»£ã«ãªã£ãã¨çæãã¾ããã
å人ã§é»åæ¸ç±ãå ¬éãã¦ãã人ã§ããã°ãCircleCIãåãã°ãã®ã¾ã¾ãããã¤ãã§ãã¾ãã®ã§ãé常ã«ä¾¿å©ã ã¨æãã¾ãããªããPDFã使ãããå ´åã¯TeXç°å¢ãå¿ è¦ãªãããããããå°ç¨ãã·ã³ãç¨æãããã¨ã«ãªããã¨æãã¾ãã
ããããé»åæ¸ç±ãå·çãããæ¹ã¯ããã²åèã«ãã¦ã¿ã¦ä¸ããã
追è¨
Fuzokuå®è·µå ¥éã®ãµã³ãã«ãªãã¸ããªã«CirlceCIãå°å ¥ãã¦ãã¤ãã§ã«ã¹ãã¼ã¿ã¹ããã¸ãã¤ãã¦ã¿ã¾ããã
ã¹ãã¼ã¿ã¹ããã¸ã«ã¤ãã¦ã¯ãå ¬å¼ããã¥ã¡ã³ããåç §ä¸ããã