大家好,我是若川。最近組織了源碼共讀活動,感興趣的可以點此加我微信 ruochuan12?參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》?包含20余篇源碼文章。
前段時間我把自己的博客,用 github action 自動同步到 https://lxchuan12.gitee.io 持續部署了。想寫篇文章來著,發現有人寫了。推薦給大家。點擊文末底部閱讀原文是我的博客同步配置,可供參考。
Gitee Pages
在上篇《一篇教你代碼同步 GitHub 和 Gitee》[1]中,我們使用 GitHub Actions 解決了 GitHub 代碼自動同步 Gitee 的問題,但我們的博客倉庫代碼同步到 Gitee 后,并不能像 GitHub 一樣自動部署 Pages,如果不使用付費的 Gitee Pages Pro 服務,那我們該怎么實現 Gitee 自動部署 Pages 呢?
GitHub Actions
答案是接著使用 GitHub Actions!你可能會想,Gitee 也有 GitHub Actions 服務嗎?Gitee 也會像 GitHub 一樣檢測 .github/workflows/
目錄下的 YAML 文件,然后執行嗎?
這當然是不可能的,Gitee 并不支持 GitHub 的這套方式,但我們為什么一定要借用 Gitee 的能力呢?我們在 GitHub Actions 中,模擬登陸 Gitee,點擊項目的部署按鈕,不也是一種實現方式嗎?
搜索 Actions
我們接下來去找一些合適的 GitHub Actions,我們可以在 GitHub 的官方市場[2],或者 awesome actions[3] 倉庫,再或者直接在 GitHub 搜索比如 gitee pages actions
之類的關鍵詞。
最終,我們決定使用 Gitee Pages Action[4],查看一下主頁的示例代碼:
name:?Syncon:push:branches:?[main]workflow_dispatch:jobs:build:runs-on:?ubuntu-lateststeps:-?name:?Sync?to?Giteeuses:?wearerequired/git-mirror-action@masterenv:#?注意在?Settings->Secrets?配置?GITEE_RSA_PRIVATE_KEYSSH_PRIVATE_KEY:?${{?secrets.GITEE_RSA_PRIVATE_KEY?}}with:#?注意替換為你的?GitHub?源倉庫地址source-repo:?git@github.com:doocs/leetcode.git#?注意替換為你的?Gitee?目標倉庫地址destination-repo:?git@gitee.com:Doocs/leetcode.git-?name:?Build?Gitee?Pagesuses:?yanglbme/gitee-pages-action@mainwith:#?注意替換為你的?Gitee?用戶名gitee-username:?yanglbme#?注意在?Settings->Secrets?配置?GITEE_PASSWORDgitee-password:?${{?secrets.GITEE_PASSWORD?}}#?注意替換為你的?Gitee?倉庫,倉庫名嚴格區分大小寫,請準確填寫,否則會出錯gitee-repo:?doocs/leetcode#?要部署的分支,默認是?master,若是其他分支,則需要指定(指定的分支必須存在)branch:?main
我們之前已經實現了 GitHub 代碼同步 Gitee,這里我們直接使用后半部分的自動部署 actions,結合上篇的 YAML 文件代碼,最終的修改如下:
name:?syncToGitee
on:push:branches:-?gh-pages
jobs:repo-sync:runs-on:?ubuntu-lateststeps:-?name:?Mirror?the?Github?organization?repos?to?Gitee.uses:?Yikun/hub-mirror-action@masterwith:src:?'github/mqyqingfeng'dst:?'gitee/mqyqingfeng'dst_key:?${{?secrets.GITEE_PRIVATE_KEY?}}dst_token:??${{?secrets.GITEE_TOKEN?}}static_list:?"learn-typescript"force_update:?truedebug:?true-?name:?Build?Gitee?Pagesuses:?yanglbme/gitee-pages-action@mainwith:#?注意替換為你的?Gitee?用戶名gitee-username:?mqyqingfeng#?注意在?Settings->Secrets?配置?GITEE_PASSWORDgitee-password:?${{?secrets.GITEE_PASSWORD?}}#?注意替換為你的?Gitee?倉庫,倉庫名嚴格區分大小寫,請準確填寫,否則會出錯gitee-repo:?mqyqingfeng/learn-typescript#?要部署的分支,默認是?master,若是其他分支,則需要指定(指定的分支必須存在)branch:?gh-pages
注意不要忘了在倉庫的設置里添加 Secrets,輸入 Gitee 的登陸密碼,然后保存名為 GITEE_PASSWORD
YAML 文件語法報錯
如果 Actions 運行失敗并出現了這種錯誤:
這是因為你的 YAML 語法寫的有問題,可能是哪里沒有對齊。可以在這個網址[5]校驗下你的 YAML 文件,也可以順便看下阮一峰老師的 YAML 語言教程[6]。
再次運行
修改了代碼之后,我們可以再執行一遍 sh deploy.sh
,然后在 GitHub 上查看運行情況:
當運行成功,我們再查看 Gitee 的地址,就會發現已經部署為最新的版本了。
至此,實現了 GitHub 和 Gitee 代碼的同步和自動部署。
參考資料
[1]
《一篇教你代碼同步 GitHub 和 Gitee》: https://github.com/mqyqingfeng/Blog/issues/236
[2]官方市場: https://github.com/marketplace?type=actions
[3]awesome actions: https://github.com/sdras/awesome-actions
[4]Gitee Pages Action: https://github.com/marketplace/actions/gitee-pages-action
[5]這個網址: https://verytoolz.com/yaml-formatter.html
[6]YAML 語言教程: https://www.ruanyifeng.com/blog/2016/07/yaml.html
·················?若川簡介?·················
你好,我是若川,畢業于江西高校。現在是一名前端開發“工程師”。寫有《學習源碼整體架構系列》20余篇,在知乎、掘金收獲超百萬閱讀。
從2014年起,每年都會寫一篇年度總結,已經寫了7篇,點擊查看年度總結。
同時,最近組織了源碼共讀活動,幫助3000+前端人學會看源碼。公眾號愿景:幫助5年內前端人走向前列。
識別上方二維碼加我微信、拉你進源碼共讀群
今日話題
略。分享、收藏、點贊、在看我的文章就是對我最大的支持~