创建AppVeyor账号,进入AppVeyor官网。访问者会跳转到/login页面,在这里可以注册或者使用GitHub账号授权登录。创建一个CI项目。在/projects页面上,选择您的博客源代码存储库以配置CI项目。单击项目中的“设置”选项卡。如果项目分支不是默认的,修改Defaultbranch。然后点击Environment栏,设置4个环境变量:namevalueSTATIC_SITE_REPO静态页面的仓库地址TARGET_BRANCH编译文件存放的分支GIT_USER_EMAILGithub用户邮箱GIT_USER_NAMEGithub用户名设置好点击Save保存。获取AccessToken打开GitHub个人设置,点击Developer设置栏,然后点击Personalaccesstokens选项卡,可以看到已有的Token,点击这里的Generatenewtoken按钮可以创建一个博客专用的token。可以参考官方文档对AccessToken进行加密。由于这个AccessToken可以直接操作你的仓库,而且配置文件是公开的,所以这个时候需要对AccessToken进行加密。您可以到AppVeyorToken加密页面进行加密。将加密后的字符串填入下一步的配置文件中。配置CI在项目中新建appveyor.yml文件,用于配置持续集成命令clone_depth:5environment:access_token:secure:#自己的加密tokeninstall:-ps:Install-Productnode6.9#默认节点版本太旧了-node-version-npm--version-npminstall-npminstallhexo-cli-gbuild_script:-hexogenerateartifacts:-path:publicon_success:-gitconfig--globalcredential.helperstore-ps:添加内容"$env:USERPROFILE\.git-credentials""https://$($env:access_token):x-oauth-basic@github.com`n"-gitconfig--globaluser.email"%GIT_USER_EMAIL%"-gitconfig--globaluser.name"%GIT_USER_NAME%"-gitclone--depth5-q--branch=%TARGET_BRANCH%%STATIC_SITE_REPO%%TEMP%\static-site-cd%TEMP%\static-site-del*/f/q-for/d%%pIN(*)dormdir"%%p"/s/q-SETLOCALEnableDelayedExpansion&robocopy"%APPVEYOR_BUILD_FOLDER%\public""%TEMP%\static-站点"/e&如果!错误级别!EQU1(exit0)ELSE(IF!ERRORLEVEL!EQU3(exit0)ELSE(exit1))-gitadd-A-gitcommit-m"UpdateStaticSite"-gitpushorigin%TARGET_BRANCH%-appveyorAddMessage"StaticSiteUpdated"大致意思是从github仓库的当前分支拉取拿下来,编译成静态文件,推送到目标分支。由于AppVeyor环境通过AccessToken来访问我们的仓库,而Hexo自带的deployment需要我们在访问过程中输入账号密码,所以Hexo的g-d命令不适合在这里使用。需要先编译成静态文件,然后将public文件夹中的静态文件push到target分支。结束
