杩愯鐜锛歐indows10锛孨ode锛孏it锛宻sh鍓嶆湡鍑嗗锛?鐢ㄦ埛鍚?github.io浠撳簱宸茬粡寤虹珛锛屽崥瀹㈡墭绠$綉绔欐湡寰呮垚涓?鐢ㄦ埛鍚?github銆俰o/blog鍏堝hexo鏈変竴涓竻鏅扮殑璁よ瘑锛屼互鍏嶈窡鐫€姝ラ鍙戝憜銆備竴銆丠exo鍙戝竷鍗氬娴佺▼姒傝鎼缓hexo鐜hexonew"title"锛堟柊寤烘枃绔狅級缂栧啓md鏂囦欢hexoclean娓呴櫎缂撳瓨鏂囦欢锛坉b.json锛夊苟鐢熸垚闈欐€佹枃浠讹紙public锛塰exogenerate锛堢敓鎴愰潤鎬佹枃浠讹級hexodeploy(Hexo浼氬皢public鐩綍涓嬬殑鏂囦欢鍜岀洰褰曟帹閫佸埌_config.yml涓寚瀹氱殑杩滅▼浠撳簱鍜屽垎鏀紝骞跺畬鍏ㄨ鐩栬鍒嗘敮涓嬪凡鏈夌殑鍐呭銆傦級鏈湴浠撳簱鍚屾鍒癎itHub锛堝鏋滀笉鍚屾锛屾簮鐮佹枃绔犲彧浼氫繚瀛樺湪鏈湴锛屼笉濂界鐞嗭級鐢变簬Hexo鐨勯儴缃查粯璁や娇鐢ㄥ垎鏀痬aster锛屽鏋滀綘鍚屾椂浣跨敤Git绠$悊浣犵殑绔欑偣鐩綍锛岄渶瑕佹敞鎰忎綘鐨勯儴缃插垎鏀簲璇ヤ笉鍚屼簬鍐欎綔鍒嗘敮銆侶exo鍦ㄩ儴缃叉偍鐨勭珯鐐圭敓鎴愮殑鏂囦欢鏃朵笉浼氭洿鏂版偍鐨勭珯鐐圭洰褰曘€傚洜姝わ紝鎮ㄥ簲璇ユ墜鍔ㄦ彁浜ゅ苟鎺ㄩ€佹偍鐨勫啓浣滃垎鏀€備竴鑸潵璇达紝绗竴姝ョ殑鐜鎼缓鍙渶瑕佸湪绗竴娆″垱寤哄崥瀹㈢珯鐐圭殑鏃跺€欒繘琛屻€傚啓鍏ユ椂锛屽彧闇€閲嶅姝ラ2-7鍗冲彲銆傝繖绉嶄娇鐢ㄦ柟娉曞湪寰堝ぇ绋嬪害涓婂彇鍐充簬褰撳湴鐜銆備絾鏄紝鏈夋椂鍊欐垜浠笉鍙槸鍦ㄤ竴鍙扮數鑴戜笂鍐欒鏂囷紝锛堜緥濡傦細涓€鐩村啓璇炬枃鐨勭數鑴戝潖浜嗭紝闇€瑕佹洿鎹㈡柊鐢佃剳锛涚數鑴戠郴缁熼噸瑁呯瓑锛夛紝鎵€浠ユ垜浠渶瑕佸湪鍙︿竴鍙拌绠楁満涓婃瀯寤哄畠銆傜幆澧冿紝杩欎釜寰堥夯鐑︼紝蹇呯劧浼氬甫鏉ヤ竴浜涘叾浠栫殑渚濊禆鐗堟湰鍏煎闂銆傚洜姝ゅ彲浠ュ埄鐢℅itHubActions鎸佺画闆嗘垚骞冲彴鏉ョ畝鍖栨枃绔犲彂甯冪殑杩囩▼銆傜畝鍖栨祦绋嬪涓嬶細hexonew"title"锛堟柊寤烘枃绔狅級鍐欎竴涓猰d鏂囨。锛屾湰鍦颁粨搴撳悓姝ュ埌GitHubpush鍒癎itHub鍚庯紝GitHubActions浼氱洃鍚垎鏀枃浠跺彉鍖栵紝瑙﹀彂鍙戝竷娴佺▼锛堢被浼间簬Jenkins鏋勫缓杩囩▼锛夈€傛暣浣撳垎瑙e涓嬪垎涓ゆ锛氫娇鐢℅itHubPages鎵嬪姩閮ㄧ讲銆傛坊鍔燝itHubActions閰嶇疆瀹屾垚鑷姩閮ㄧ讲2.Hexo鎼缓鍗氬Hexo鏄竴涓揩閫熴€佺畝娲併€侀珮鏁堢殑鍗氬妗嗘灦銆侶exo浣跨敤Markdown锛堟垨鍏朵粬娓叉煋寮曟搸锛夎В鏋愭枃绔狅紝绉掔骇鐢熸垚涓婚绮剧編鐨勯潤鎬佺綉椤点€傛枃妗pminstall-ghexo-clicd[workspace]hexoinitcdnpminstallhexos缃戠珯鍩烘湰閰嶇疆淇敼鍙傝€冭繖閲?.GitHub鎵樼Hexo鍗氬鍙互閲囩敤鍒嗘敮绠$悊鎴栬€呮柊寤簉epo锛宑i閰嶇疆鐣ユ湁涓嶅悓銆傝繖閲屾垜閲囩敤灏唄exo鍗氬婧愮爜鎵樼鍦ㄧ嫭绔媟epo涓婄殑鏂瑰紡锛岀紪璇慔exo宸ョ▼鐢熸垚闈欐€侀〉闈紝閮ㄧ讲鍒癵h-pages鍒嗘敮鏂板缓浠撳簱锛歜log锛堣嚜宸卞懡鍚嶏級localhexo浠撳簱鍏宠仈杩滅▼GitHub浠撳簱锛屾湰鍦颁粨搴撴帹閫佸埌杩滅▼鏈湴浠撳簱銆傚畨瑁卙exo-deployer-git闇€瑕佷竴浜涘繀瑕佺殑淇敼閰嶇疆銆俬ttps://github.com/hexojs/hexo-deployer-git淇敼_config.yml閰嶇疆濡備笅锛歶rl:https://all-smile.github.io/blogroot:/blog/#...deploy:type:'git'repo:git@github.com:all-smile/blog.gitbranch:gh-pages鎻愪氦鍒拌繙绋嬩粨搴撳垱寤篻h-pages鍒嗘敮hexo缁撳悎github鍒涘缓涓汉缃戠珯鎸囧畾鍒嗘敮鍚嶏紝榛樿hexo涓殑鍒嗘敮涔熷彨杩欎釜鍚嶅瓧gitcheckout-bgh-pagesgitpush-uorigingh-pages杩滅▼浠撳簱鎵撳紑githubpages鎸囧畾閮ㄧ讲鍒嗘敮锛歡h-pages4锛屾墜鍔ㄩ儴缃叉湰鍦伴」鐩墽琛屽懡浠わ細hexocleanhexoghexodeployhexo妯℃澘寮曟搸鐢熸垚static鏂囦欢骞舵帹閫佸埌gh-pages鍒嗘敮涓嬶紙鏇挎崲鎺夊師鍒嗘敮涓嬬殑鎵€鏈夋枃浠讹級锛屽埌杩欓噷鍗氬鐨勬惌寤哄氨宸茬粡瀹屾垚浜嗐€傞渶瑕佹敞鎰忕殑鏄痟exodeploy鍛戒护涓嶄細甯垜浠妸鏈湴鐨勪慨鏀瑰悓姝ュ埌杩滅▼浠撳簱锛屾墍浠ュ綋鎴戜滑鍦ㄦ湰鍦板啓瀹屽崥鏂囧悗锛屾湁涓や欢浜嬭鍋氾細涓€鏄彂甯冪珯鐐癸紝浜屾槸灏辨槸鍚屾杩滅▼浠撳簱銆傝繖涓瘮杈冮夯鐑︺€備笅闈㈠皢璁茶В濡備綍閰嶇疆鎸佺画闆嗘垚4.1銆傛煡鐪嬫晥鏋滆繖閲屾垜閰嶇疆浜嗕竴涓嚜瀹氫箟鍩熷悕5.鑷姩閮ㄧ讲鏄疍evOps銆傚彲浠ョ悊瑙d负GitHub閫氳繃涓€浜沺ipeline閰嶇疆锛圕I/CD锛夛紝鐒跺悗鍦ㄦ湰鍦版帹閫佷唬鐮佹椂瑙﹀彂pipeline鎵ц锛岃嚜鍔ㄩ儴缃茬珯鐐广€傜敱浜嶨itHubActions涔熷彲浠ュ疄鐜癈I/CD锛宼ravis-ci甯傚満鍙楀埌鎸ゅ帇锛屾墍浠ヤ粬浠敼鍙樹簡杩愯惀绛栫暐锛屽彉鎴愪簡鏀惰垂浣跨敤锛佹垜浠垏鎹㈠埌GitHubActionsGitHubActions鏄竴涓紑婧愮殑鎸佺画闆嗘垚鏋勫缓椤圭洰锛岀敤浜庢寔缁泦鎴愭墭绠″湪GitHub涓婄殑浠g爜锛屼娇鐢ㄨ捣鏉ラ潪甯哥畝鍗曟柟渚裤€備娇鐢℅itHubActions鍚庯紝鍙互灏嗕箣鍓嶇殑閮ㄧ讲姝ラ鑷姩鍖栥€傛垜浠彧闇€瑕佸皢鏈湴淇敼鐨勬枃浠舵帹閫佸埌GitHub浠撳簱鍗冲彲銆侴itHubActions妫€娴嬪埌master鍒嗘敮鐨勪唬鐮佸彂鐢熷彉鍖栵紝浼氳嚜鍔ㄦ墽琛岃剼鏈懡浠ゅ皢Hexo椤圭洰缂栬瘧鎴愰潤鎬侀〉闈€傞儴缃插埌gh-pages鍒嗘敮锛屽緢濂斤紒6.GitHubActionsGitHubActions鏂囨。璇风偣杩欓噷浣跨敤GithubAction閮ㄧ讲hexo锛岃繖鏍风數鑴戞湰鍦板氨涓嶉渶瑕佸畨瑁卬pm鐩稿叧鐨勪笢瑗夸簡銆傚彟澶栧湪椤甸潰涓婁篃鍙互浣跨敤github.dev杩涜缂栬緫銆傚湪绾跨紪杈戯細Github鎻愪緵浜嗗湪绾跨紪杈戦〉闈€傛寜涓嬪洖璐〉闈笂鐨勬寜閽紝鎵撳紑缂栬緫椤甸潰銆傛瘡涓猘ction閮芥槸涓€涓嫭绔嬬殑鑴氭湰锛屾墍浠ュ彲浠ュ仛鎴愪竴涓唬鐮佸簱锛屼娇鐢╱serName/repoName鐨勮娉曟潵寮曠敤action銆備緥濡傦紝actions/setup-node鎸囩殑鏄粨搴揼ithub.com/actions/setup-node锛屼唬琛ㄤ竴涓猘ction锛岀敤浜庡畨瑁匩ode.js銆傚叾瀹濭itHub鐨勫畼鏂筧ctions鏄斁鍦╣ithub.com/actions閲岄潰鐨勩€?.1.鏀寔鐨勪护鐗屾敮鎸佷笁涓护鐗屻€俆okenPrivateRepositoryPublicRepositoryProtocolSettinggithub_token鉁咃笍鉁咃笍HTTPSnotrequireddeploy_key鉁咃笍鉁咃笍SSHrequiredpersonal_token鉁咃笍鉁咃笍HTTPSrequired娉ㄦ剰锛欸ITHUB_TOKEN涓嶆槸涓汉璁块棶浠ょ墝锛孏itHubActionsrunner浼氳嚜鍔ㄥ垱寤轰竴涓狦ITHUB_TOKEN瀵嗛挜鐢ㄤ簬鎮ㄥ湪宸ヤ綔娴佺▼銆傚洜姝わ紝鎮ㄦ棤闇€浠讳綍閰嶇疆鍗冲彲绔嬪嵆寮€濮嬮儴鈥嬧€嬬讲6.2锛屾敮鎸佹敮鎸佸钩鍙扮殑鎵€鏈堿ctions杩愯鍣細鏀寔Linux(Ubuntu)銆乵acOS鍜學indows銆傜幆澧僩ithub_tokendeploy_keypersonal_tokenubuntu-20.04鉁咃笍鉁咃笍鉁咃笍ubuntu-18.04鉁咃笍鉁咃笍鉁咃笍macos-鏈€鏂扳渽锔忊渽锔忊渽锔弚indows-鏈€鏂扳渽锔?2)鉁咃笍7.涓篐exo閰嶇疆GitHubActions鍏蜂綋姝ラ锛?.1.璁剧疆SSH绉侀挜deploy_key鍒涘缓SSH閮ㄧ讲瀵嗛挜锛屼娇鐢ㄤ互涓嬪懡浠ょ敓鎴愰儴缃插瘑閽ャ€俿sh-keygen-trsa-b4096-C"$(gitconfiguser.email)"-fgh-pages-N""浣犱細寰楀埌2涓枃浠讹細gh-pages.pub鏄叕閽h-pages鏄鏈夌殑Next,杩涘叆鍗氬婧愮爜浠撳簱璁剧疆锛岃繘鍏eployKeys锛屼娇鐢ˋllowwriteaccess娣诲姞浣犵殑鍏挜gh-pages.pub锛屽悕瀛楀啓鎴怉CTIONS_DEPLOY_KEY鐨勫叕閽ワ紝鏄庣‘鐢ㄩ€旓紝鏂逛究鍚庢湡缁存姢杩涘叆Actions绉樺瘑骞跺皢鎮ㄧ殑绉侀挜gh-pages娣诲姞涓篈CTIONS_DEPLOY_KEY锛堟鍚嶇О闇€瑕佸湪yml鏂囦欢涓娇鐢級7.2銆傚垱寤轰竴涓柊鐨?github/workflows/pages.yml鏂囦欢銆倅ml鏂囦欢閫氳繃缂╄繘锛堢┖鏍硷紝鑰屼笉鏄埗琛ㄧ锛夋潵琛ㄨ揪灞傜骇鍏崇郴銆俌aml涓嶈锛屼綘鍙互鍘昏繖閲岃鎳傝娉曘€備互涓嬫枃浠舵槸鎴戜釜浜洪厤缃殑涓€閮ㄥ垎銆備笉寤鸿浣跨敤name:Pages#Triggersandbranchesdirectlyon:push:branches:-master#defaultbranchjobs:#Subtaskpages:runs-on:ubuntu-latest#纭畾杩愯闇€瑕佺殑铏氭嫙鏈虹幆澧冩潈闄愶細contents:writesteps:-uses:actions/checkout@v2#with:#submodules:true#fetch-depth:0#姣忎釜鍚嶇О浠h〃涓€涓楠わ細step-name:UseNode.js16.xuses:actions/setup-node@v2with:node-version:'16.14.1'#浣犵敤鐨刵ode鐗堟湰娌¢棶棰?-run:node-v#鏌ョ湅node鐗堟湰鍙?缂撳瓨渚濊禆锛歨ttps://docs.github.com/cn/actions/using-workflows/caching-dependencies-to-speed-up-workflows-name:CacheNPMdependenciesuses:actions/cache@v2with:#npmcachefilesarestoredin`~/.npm`onLinux/macOS璺緞锛殈/.npm#璺緞锛歯ode_moduleskey:${{runner.OS}}-npm-cacherestore-keys:|${{runner.OS}}-npm-cache#鏌ョ湅璺緞锛?home/runner/work/blog/blog#-鍚嶇О锛歀ookPath#run:pwd#鏌ョ湅鏂囦欢-name:LookDirListrun:tree-L3-a#绗竴娆℃墽琛孖nstallDependencies鎴栬€呭綋渚濊禆鍙戠敓鍙樺寲鏃讹紝鍏朵粬鏋勫缓涓嶉渶瑕佽繖涓€姝?name:InstallDependenciesrun:npminstall-name:LookDirListrun:tree-L3-a#-name:cleanthemecache#run:gitrm-f--cachedthemes/tenacity#run:gitsubmoduledeinitthemes/tenacity&&gitrm涓婚/tenacity#瀹夎涓婚-鍚嶇О锛氬畨瑁呬富棰樿繍琛岋細gitsubmoduleaddhttps://github.com/all-smile/tenacity.gitthemes/tenacity-鍚嶇О锛欳lean杩愯锛歯pmrunclean-鍚嶇О锛欱uild杩愯锛歯pmrunbuild-name:Deployuses:peaceiris/actions-gh-pages@v3with:deploy_key:${{secrets.ACTIONS_DEPLOY_KEY}}user_name:xiaouser_email:allblue95@126.com#鑾峰彇鎻愪氦鏂囩珷婧愨€嬧€嬬爜鏃剁殑commitmessage,as鍙戝竷gh-pages鍒嗘敮鐨勪俊鎭痗ommit_message:${{github.event.head_commit.message}}full_commit_message:${{github.event.head_commit.message}}github_token:${{secrets.GITHUB_TOKEN}}#GITHUB_TOKEN涓嶆槸涓汉璁块棶浠ょ墝锛孏itHubActionsrunner浼氳嚜鍔ㄥ垱寤轰竴涓狦ITHUB_TOKENsecret鐢ㄤ簬浣犵殑宸ヤ綔娴佺▼楠岃瘉鎵€浠ヤ綘鍙互鍦ㄦ病鏈変换浣曢厤缃殑鎯呭喌涓嬬珛鍗冲紑濮嬮儴鈥嬧€嬬讲publish_dir:./publicallow_empty_commit:true#AllowEmptyCommit#Usetheoutputfromthe`deploy`step(usefortestaction)-name:Gettheoutputrun:|echo"${{steps.deploy.outputs.notify}}"7.3銆備慨鏀筥config.yml鏂囦欢涓殑Deploy閰嶇疆#Deployment##Docs:https://hexo.io/docs/one-command-deploymentdeploy:type:'git'repo:git@github.com:all-smile/blog.gitbranch:gh-pages#榛樿鎻愪氦淇℃伅锛歋iteupdated:{{now('YYYY-MM-DDHH:mm:ss')}}message:${{github.event.head_commit.message}}#鐩存帴灏哻ommit娑堟伅浼犻€掑埌GitHubPages浠撳簱鍙戝竷鏁堟灉鏈湴浠撳簱鐩存帴push锛岃Е鍙慓itHubActions鑷姩鏋勫缓鍙戝竷Hexo涓婚璇锋煡鐪嬫枃妗h嚜琛屽畨瑁呴厤缃?銆丟itHubActions闂瑙e喅8.1.闈炴硶杈撳叆鍊煎湪pages.yml鏂囦欢鐨凞eploy姝ラ涓嬶紝鍙戝竷鏃堕渶瑕侀厤缃竴浜涘弬鏁般€傝繖浜涘弬鏁板悕鏄寚瀹氱殑锛屼笉鑳介殢渚垮啓銆備緥濡傦紝commit_msg搴旇浣跨敤commit_messagecommit_message:${{github.event.head_commit.message}}Warning:Unexpectedinput(s)'commit_msg',validinputsare['deploy_key','github_token','personal_token','publish_branch','publish_dir','鐩殑鍦皀_dir','external_repository','allow_empty_commit','keep_files','force_orphan','user_name','user_email','commit_message','full_commit_message','tag_name','tag_message','enable_jekyll','disable_nojekyll','cname','exclude_assets']8.2,Theprocess'/usr/bin/git'failedwithexitcode128杩欎釜闂寰堟湁鍙兘鏄疓ITHUB_TOKEN寮曡捣鐨勶紝鍙傝€冮厤缃枃妗ITHUB_TOKEN鏄竴涓狦itHub搴旂敤瀹夎璁块棶浠ょ墝锛屽彲浠ヤ娇鐢ㄥ畨瑁呰闂护鐗屼唬琛ㄥ瓨鍌ㄥ簱涓畨瑁呯殑GitHub搴旂敤绋嬪簭杩涜韬唤楠岃瘉銆備护鐗岀殑鏉冮檺浠呴檺浜庡寘鍚偍鐨勫伐浣滄祦绋嬬殑瀛樺偍搴撱€傝В鍐虫柟娉曪細鏌ョ湅yml鏂囦欢涓殑鍚嶇О鏄惁鏈夎github_token:${{secrets.GITHUB_TOKEN}}浠撳簱Settings/Actions/general涓嬶紝淇敼GITHUB_TOKEN8.3鐨勬潈闄愶紝閮ㄧ讲鍏抽敭闂ERROR:Permissiontoall-smile/blog.git鎷掔粷閮ㄧ讲keyfatal锛氭棤娉曚粠杩滅▼瀛樺偍搴撹鍙栥€傝纭繚鎮ㄦ嫢鏈夋纭殑璁块棶鏉冮檺骞朵笖瀛樺偍搴撳瓨鍦ㄣ€傝В鍐虫柟娉曪細妫€鏌ages.yml涓紩鐢ㄧ殑鍙橀噺鍚嶆槸鍚︿笌github浠撳簱涓缃殑鐩稿悓锛屽叕绉侀挜鏄惁鍖归厤銆傚鏋滀笉鍖归厤灏遍噸鏂扮敓鎴愭坊鍔犲氨濂戒簡馃憠馃憠濡傛灉鏈夊叾浠栭棶棰樹篃鍙互鐪嬬湅杩欓噷锛屽簲璇ヤ細鏈夊府鍔煒婃渶鍚庡彧闇€瑕佸湪鏈湴鍐欏ソ鍚巔ush鍒拌繙绋嬩粨搴撳氨鍙互鍙戝竷浜嗗畠鍦ㄥ叾浠栬绠楁満涓婁緵鏈湴浣跨敤銆備娇鐢╣it鍙互鐩存帴鎷夊彇杩滅▼浠撳簱鐨勬簮浠g爜锛屽湪鏈湴鍒涘缓鏂囦欢锛岀紪杈戯紝鎺ㄩ€佸埌杩滅锛岀劧鍚庡彂甯冩垨鑰呬娇鐢╣ithub.dev鍦ㄧ嚎鍒涘缓锛岀紪杈戯紝鍙戝竷馃巿馃巿馃巿馃尮鎸佺画鏇存柊涓紝鍏虫敞鎴戯紝浣犱細鍙戠幇涓€涓姫鍔涚殑鍓嶇瀹濔煒婏紝璁╂垜浠竴璧峰涔犳垚闀裤€傪煄夊枩娆㈢殑鏈嬪弸璁板緱鐐硅禐鍏虫敞鏀惰棌锛岀湅瀹屼笉浼氳糠璺煒夝煄佹杩庡ぇ瀹惰瘎璁轰氦娴侊紝锜硅煿馃槉