日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

github Action使用

發布時間:2023/12/14 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 github Action使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

需求

最近想實現一個自動部署驚天博客的功能,我有一個靜態博客項目,是使用hugo進行編譯和部署的,之前自己寫了一個腳本將變動的博客自動編譯部署到github page 上,也不是很麻煩。但是需要在本機執行一次命令,沒有完全自動化,以前了解過github action的功能,可以在某個分支提交代碼時觸發一個任務,很適合我這個場景,今天來嘗試一下。

github action 其實就是設置一個觸發條件,然后github提供一個運行環境去執行我們實現定義好的程序,每次執行這個任務時,所給的環境都是嶄新的,不保存數據。并且任務的執行時長和一天內的任務執行次數是有限制的。不然早就被薅禿了。

我的需求是,當我在博客項目main 分支 推送代碼時,觸發github action 執行 hugo --minify 將markdown 文件編譯成靜態的 html 文件,然后推送到我的github page 上,完成部署。鎖執行的任務就只有三步——下載代碼,編譯和部署。

先說編譯,這一步是需要用到hugo命令的,github action 給我們提供的環境肯定時沒有這個命令的,我們需要下載安裝,非常棒的是,github 收錄了開發者已經寫好的 action ,我們可以直接拿來用就好了,這個倉庫中就有 hugo 相關的action—— peaceiris/actions-hugo@v2

同理, 部署步驟也有人提供了對應的action,我們也是直接拿來用就好了。—— peaceiris/actions-gh-pages@v3

編譯之前其實還有一步,那就是下載代碼,在一個全新的環境中,如果沒有代碼,難道要編譯空氣?下載代碼肯定離不開 git 工具,難道要我們自己裝一個 git ? 這倒不用自己做,也有現成的 action —— actions/checkout@v2

實現

我們的需求和步驟已經梳理完了,下面看怎么操作吧

  • 在項目根目錄下新建 .github/workflows/pages.yml 文件, 其中 yml 文件是可以隨意命名的,但路徑是固定的。
  • 編寫page.yml
  • name: dcblog_action # 名字on: # 觸發條件push: # 有推送動作時觸發branchesjkj:- main # 這里的意思是當 main分支發生push的時候,運行下面的jobsjobs: # 要執行的任務,可以時多個deploy: # 任務名runs-on: ubuntu-18.04 # 在什么環境運行任務steps:- uses: actions/checkout@v2 # 引用actions/checkout這個action,與所在的github倉庫同名with:submodules: true # Fetch Hugo themes (true OR recursive) 獲取submodule主題fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod- name: Setup Hugo # 步驟名自取uses: peaceiris/actions-hugo@v2 # hugo官方提供的action,用于在任務環境中獲取hugowith:hugo-version: 'latest' # 獲取最新版本的hugo- name: Buildrun: hugo --minify # 使用hugo構建靜態網頁- name: Deployuses: peaceiris/actions-gh-pages@v3 # 一個自動發布github pages的actionwith:external_repository: dccmmtop/dccmmtop.github.io # 發布到哪個repopersonal_token: xxxx # 發布到其他repo需要提供上面生成的personal access tokenpublish_dir: ./public # 注意這里指的是要發布哪個文件夾的內容,而不是指發布到目的倉庫的什么位置,因為hugo默認生成靜態網頁到public文件夾,所以這里發布public文件夾里的內容publish_branch: master # 發布到哪個branch

    personal_token 可以去你的github setting 中獲取,記得保密

    驗證

    下面在main 分支上推送一次代碼,可以在github action 標簽頁下看到action 運行成功的標識,以及日志:

    總結

    以上是生活随笔為你收集整理的github Action使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。