精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

聊聊 GitHub Actions 博文發布工作流程

開發 前端
最近寫了幾篇文章,想對每次編寫的文檔做個版本控制。想到了Github, 將所有的文檔備份到Github。不想每次手動運行hugo 編譯和發布腳本,于是就有了下面的GithubActions工作流。借助GitHubActions完成對博客文章的自動化發布部署。

[[376077]]

 最近寫了幾篇文章,想對每次編寫的文檔做個版本控制。想到了Github, 將所有的文檔備份到Github。不想每次手動運行hugo 編譯和發布腳本,于是就有了下面的GithubActions工作流。借助GitHubActions完成對博客文章的自動化發布部署。

版本庫

首先,我們在Github上面創建一個倉庫,用于存儲博客的數據。靜態博客推薦使用Hugo,非常簡單。使用Markdown語法,官方提供了很多不錯的主題模板。


這里我是用主干main 分支存儲項目的代碼, 單獨創建一個分支存儲編譯后的靜態HTML資源文件。我們切換到另外一個分支看下:


工作面板

新建一個工作板可以自定義狀態,簡單的將每次的博客優化需求記錄在這里。這里的每一項任務都可以轉換為issue,提交代碼可以對應的issue關聯。


CI/CD集成與發布

使用Github actions 作為構建。設置在main分支提交代碼即構建。

  1. name: github pages 
  2. on
  3.   push: 
  4.     branches: [ main ] 

簽出主干分支代碼,刪除pages-git 分支(該分支存放靜態文件,需要頻繁更新)。

  1. jobs: 
  2.   deploy: 
  3.     runs-on: ubuntu-18.04 
  4.     steps: 
  5.       - uses: actions/checkout@v2 
  6.         with
  7.           submodules: true  # Fetch Hugo themes (true OR recursive) 
  8.           fetch-depth: 0    # Fetch all history for .GitInfo and .Lastmod 
  9.  
  10.       - nameDelete branch 
  11.         uses: dawidd6/action-delete-branch@v3 
  12.         with
  13.           github_token: ${{ secrets.GIT_TOKEN }} 
  14.           branches: "pages-git" 

hugo --minify 生成靜態文件public 目錄。

  1. name: Setup Hugo 
  2.        uses: peaceiris/actions-hugo@v2 
  3.        with
  4.          hugo-version: '0.74.2' 
  5.          # extended: true 
  6.  
  7.      - name: Build 
  8.        run: | 
  9.          hugo --minify 
  10.           
  11.          ls public 
  12.          tar zcf ${version}-public.tar.gz public 
  13.          ls  

刪除當前目錄除public目錄外的所有文件, 然后將public目錄文件移動到當前目錄。

  1. namecommit 
  2.        run: | 
  3.          rm -fr archetypes 
  4.          rm -fr content 
  5.          rm -fr demo 
  6.          rm -fr static 
  7.          rm -fr themes 
  8.          rm -fr .DS_Store 
  9.          rm -fr 1.1.0-public.tar.gz 
  10.          rm -fr README.md 
  11.          rm -fr config.toml 
  12.          mv public/* ./ 
  13.          sleep 3 
  14.          ls -l  
  15.          rm -fr public  
  16.          git config --global user.email xxx@qq.com 
  17.          git config --global user.name cccc 
  18.          git add . 
  19.          git commit -m "update" -a 

提交當前的工作目錄到pages-git 分支。(到此pages-git分支已經存儲了更新后的靜態文件)

  1. name: Push changes 
  2.   uses: ad-m/github-push-action@master 
  3.   with
  4.     github_token: ${{ secrets.GIT_TOKEN }} 
  5.     branch: "pages-git" 

github pages訪問太慢了, 準備使用國內的gitee pages服務。在gitee創建一個倉庫。最后一部分代碼是將當前pages-git 分支代碼鏡像到gitee 項目的pages-git分支。

  1. name'get code ' 
  2.         uses: actions/checkout@v2 
  3.         with
  4.           submodules: true  # Fetch Hugo themes (true OR recursive) 
  5.           fetch-depth: 0    # Fetch all history for .GitInfo and .Lastmod 
  6.           ref: "pages-git" 
  7.       - name'Mirror to gitee' 
  8.         uses: pixta-dev/repository-mirroring-action@v1 
  9.         with
  10.           target_repo_url: 
  11.             git@gitee.com:devopsgo/devopsgo.git 
  12.           ssh_private_key: 
  13.             ${{ secrets.GIT_PRIVATE_KEY }} 

到此,代碼已經同步到了Gitee Pages。接下來觸發Gitee Pages 服務更新。(指定靜態目錄分支部署)


瀏覽器訪問devopsgo.gitee.io 就可以訪問了。到此發布完成了。


工作流已經創建好了, 最后每次發布博文的時候。使用vscode編寫markdown文檔,然后本地hugo serve 調試。完成后提交到主干分支,隨后GitHub Actions 就會運行CI/CD,自動發布。




擴展參考:SSH發布到云主機

  1. # - name: copy file via ssh password 
  2.     #   uses: appleboy/scp-action@master 
  3.     #   with
  4.     #     host: ${{ secrets.SSH_HOST }} 
  5.     #     username: ${{ secrets.SSH_USER }} 
  6.     #     password: ${{ secrets.SSH_PASSWD }} 
  7.     #     port: 22 
  8.     #     source: "./${{env.version}}-public.tar.gz" 
  9.     #     target: "/opt/" 
  10.          
  11.     # - name: executing remote ssh commands using password 
  12.     #   uses: appleboy/ssh-action@master 
  13.     #   with
  14.     #     host: ${{ secrets.SSH_HOST }} 
  15.     #     username: ${{ secrets.SSH_USER }} 
  16.     #     password: ${{ secrets.SSH_PASSWD }} 
  17.     #     port: 22 
  18.         # script: | 
  19.         #   rm -fr /var/www/newdevops/* 
  20.         #   mv /opt/${{ env.version }}-public.tar.gz /var/www/newdevops/ 
  21.         #   cd /var/www/newdevops/ && tar zxf ${{ env.version }}-public.tar.gz 
  22.         #   mv public/* ./  && rm -fr public  
  23.         #   chown nginx:nginx /var/www/ -R 
  24.         #   systemctl reload nginx  

到此,整個工作流程就完成了。望對你有所幫助!

 

責任編輯:姜華 來源: DevOps云學堂
相關推薦

2023-09-05 08:00:00

開源GreptimeDB

2022-11-02 15:11:44

LightHouseChrome插件

2010-09-27 10:19:09

DHCP工作流程

2009-06-05 10:26:05

struts工作流程

2011-03-31 10:54:01

Cacti工作流程

2020-07-27 08:44:22

存儲Kafka 流程

2010-06-24 16:40:16

Bittorrent協

2010-07-13 16:21:22

FIX協議

2010-07-28 17:19:28

ICMP協議

2011-03-29 09:30:12

Cacti

2009-07-27 14:13:15

2010-06-12 17:44:19

ARP協議

2015-04-07 11:47:18

運維管理IT運維

2010-06-23 14:46:54

DHCP協議

2011-12-14 09:58:58

JavajBPM

2010-08-30 09:07:12

DHCP工作流程

2023-06-05 08:14:17

RabbitMQ兔子MQ開源

2009-08-07 11:10:40

Netbeans ID

2022-12-21 08:20:01

2020-12-04 10:42:54

GithubSSDNode.js
點贊
收藏

51CTO技術棧公眾號

日本麻豆一区二区三区视频| 久久九九热re6这里有精品| 国产欧美精品国产国产专区| 国产精品亚洲网站| 国产日韩欧美在线观看视频| 无人区乱码一区二区三区| 精品久久香蕉国产线看观看gif| 欧美日韩成人一区二区三区| 国产又黄又粗又猛又爽| 亚洲激情亚洲| 日韩在线高清视频| 中文字幕a在线观看| 97精品国产99久久久久久免费| 亚洲男人天堂av| 欧美日韩精品免费观看视一区二区| 一级黄色录像大片| 一级成人国产| 久久精品这里热有精品| 久久国产精品影院| 99精品中文字幕在线不卡| 在线免费观看成人短视频| 国产性生活免费视频| 高清日韩av电影| 成人免费高清在线| 成人h猎奇视频网站| 日韩黄色一级大片| 欧美激情91| 中文字幕国产亚洲| 精品人妻互换一区二区三区| 无人区乱码一区二区三区| 欧美日韩专区在线| 欧美污视频网站| 大香伊人久久| 亚洲最快最全在线视频| 在线视频不卡一区二区| 黄色网址在线播放| 91免费视频网| 国产精品日韩一区二区免费视频| 91激情在线观看| 日本视频一区二区三区| 日韩av大片免费看| 国产成人精品一区二三区| 欧美久色视频| 欧美巨大黑人极品精男| 好吊日在线视频| 日韩欧美大片| 最新日韩中文字幕| 精品人体无码一区二区三区| 激情综合网站| 国产一区二区三区精品久久久| 香港三日本8a三级少妇三级99| 蜜桃在线一区| 日韩午夜在线观看视频| 欧美激情第一区| 只有精品亚洲| 欧美一区二区三区在线观看| 毛片毛片毛片毛| 亚洲欧美在线综合| 91精品国产综合久久久蜜臀图片| gai在线观看免费高清| 福利一区在线| 在线播放视频一区| 五月六月丁香婷婷| 人人九九精品视频| 精品福利一区二区三区| 精品1卡二卡三卡四卡老狼| 99ri日韩精品视频| 日韩精品有码在线观看| 丰满少妇高潮一区二区| 狠狠操综合网| 精品国产视频在线| 四虎永久免费在线| 亚洲人成人一区二区三区| 4438全国成人免费| 国产真人无遮挡作爱免费视频| 日本vs亚洲vs韩国一区三区| 成人国产在线视频| www.av日韩| 97久久精品人人爽人人爽蜜臀| 欧美精品欧美精品系列c| 成人免费在线观看| 亚洲激情六月丁香| 亚洲色成人一区二区三区小说| 在线高清av| 欧美日韩成人一区二区| 国产亚洲精品成人a| 午夜先锋成人动漫在线| 这里只有精品在线观看| 丰满少妇被猛烈进入一区二区| 在线不卡欧美| 国产精品手机播放| 国产香蕉在线观看| 国产精品天天摸av网| 91网站在线观看免费| 午夜欧美巨大性欧美巨大| 5566中文字幕一区二区电影 | 国产又粗又猛又爽又黄的视频小说| 日本黄色精品| 97精品国产91久久久久久| 青青艹在线观看| 国产白丝精品91爽爽久久 | 国产精品88久久久久久| 高清一区二区三区四区五区| 一区二区乱子伦在线播放| 国产精品一区二区男女羞羞无遮挡| 久久精品人成| 中文字幕在线播放网址| 在线一区二区三区四区五区| 国产成人精品综合久久久久99| 九九热线有精品视频99| 欧美丰满少妇xxxxx| 波多野结衣视频在线观看| 懂色av中文一区二区三区| 日韩资源av在线| 女子免费在线观看视频www| 欧美视频日韩视频在线观看| 无码任你躁久久久久久老妇| 久久久久久久久久久妇女| 日本三级韩国三级久久| 欧美亚洲精品在线观看| 亚洲免费观看视频| 一级片视频免费观看| 噜噜噜天天躁狠狠躁夜夜精品 | 国产亚av手机在线观看| 欧美日韩三级在线| 永久免费看mv网站入口78| 亚洲激情在线| 国产伦理久久久| 中文在线免费| 91精品国产综合久久婷婷香蕉| 亚洲欧美va天堂人熟伦| 国产精品一级| 久久精品日产第一区二区三区精品版| 午夜av在线播放| 91精品国产综合久久小美女| 亚洲欧美卡通动漫| 另类中文字幕网| 亚洲v国产v| 亚洲电影有码| 国产一区二区成人| 国产成人精品777777| 久久婷婷国产综合精品青草 | 久久av老司机精品网站导航| 亚洲高清乱码| 久久91视频| 久久精品国产99国产精品澳门| 色婷婷久久综合中文久久蜜桃av| 久久久另类综合| 久久久久久久久久福利| 亚洲日本三级| 国产精品久久999| 国产小视频免费在线网址| 丁香五六月婷婷久久激情| avtt香蕉久久| 国产毛片一区| 日韩久久不卡| 久久99久久久精品欧美| 久久精品视频va| 国产强伦人妻毛片| 亚洲综合丝袜美腿| 国产精品福利导航| 亚洲专区一区二区三区| 日韩欧美在线观看强乱免费| 日本肉肉一区| 操91在线视频| 男人天堂网在线视频| 欧美日韩国产在线播放| 一区二区三区伦理片| 日韩av中文字幕一区二区三区 | 亚洲视屏一区| 欧美一级片免费观看| 精品亚洲美女网站| 日韩一级裸体免费视频| 国产成人三级在线播放| 亚洲第一福利一区| 精品国产无码在线观看| 麻豆一区二区三区| 日韩国产小视频| 外国成人在线视频| 国产精品视频免费观看www| 成人午夜在线影视| 亚洲高清福利视频| 波多野结衣大片| 亚洲精品v日韩精品| 最新在线黄色网址| 麻豆成人91精品二区三区| 黄色网址在线免费看| 国产乱人伦丫前精品视频| 国产91色在线播放| 91麻豆免费在线视频| 亚洲国内精品视频| 亚洲天堂中文网| 亚洲成人高清在线| 婷婷丁香综合网| 不卡电影免费在线播放一区| www.欧美日本| 亚洲天堂黄色| 亚洲国产一区二区精品视频| 久久久国产精品入口麻豆| 欧美一二三视频| 黄色大片在线播放| 日韩精品一区二区视频| 99久久久无码国产精品免费| 色综合天天综合狠狠| 国产精品免费人成网站酒店| 26uuu亚洲| 91福利视频免费观看| 日韩高清在线电影| koreanbj精品视频一区| 性欧美69xoxoxoxo| 欧美婷婷久久| 好吊妞视频这里有精品| 国产欧美日韩免费| av日韩亚洲| 久久久噜久噜久久综合| 九七久久人人| 尤物九九久久国产精品的特点| 成人小说亚洲一区二区三区| 欧美人妇做爰xxxⅹ性高电影| 日韩人妻精品中文字幕| 亚洲成av人在线观看| 国产中文av在线| 国产欧美日韩中文久久| 双性尿奴穿贞c带憋尿| 国产精品18久久久久久vr| 亚洲另类第一页| 青青草原综合久久大伊人精品优势| 国产精品裸体瑜伽视频| 狠狠久久婷婷| 少妇久久久久久被弄到高潮| 久久久久久美女精品 | 7777奇米亚洲综合久久| 国产伊人久久| 国产精品美女主播| 欧洲亚洲两性| 热久久这里只有| 亚洲校园激情春色| 57pao精品| xxxxx性欧美特大| 欧美一级淫片videoshd| 黑森林国产精品av| 97视频在线观看成人| 91在线三级| 久久久久久久久综合| 福利网站在线观看| 国语自产精品视频在线看抢先版图片| 在线āv视频| 欧美激情国内偷拍| 免费在线看电影| 午夜精品久久久久久99热| a'aaa级片在线观看| 韩剧1988免费观看全集| 17videosex性欧美| 性欧美激情精品| 国产免费不卡| 国产精品99久久久久久www| 成人看片网页| 成人亲热视频网站| 欧美黄色一级| 国内外成人免费视频| 日本欧美高清| 欧美日韩在线一区二区三区| av亚洲免费| 精品国产无码在线| 韩日视频一区| 日本wwww视频| 免费的国产精品| 日本网站在线看| 成人免费毛片aaaaa**| 天天躁日日躁aaaxxⅹ| 国产精品三级视频| 久久无码精品丰满人妻| 色综合欧美在线| 中文字幕在线观看国产| 日韩亚洲欧美高清| 先锋av资源站| 日韩一级裸体免费视频| 日本一本在线免费福利| 51精品在线观看| 国产精品高潮久久| caoporn国产精品免费公开| 青青一区二区| 一区二区在线观| 亚洲黄色精品| 色播五月综合网| 国产91精品一区二区| 四虎影成人精品a片| 亚洲人成亚洲人成在线观看图片| 国产第100页| 欧美人成免费网站| 亚洲欧美丝袜中文综合| 少妇久久久久久| а√天堂8资源在线| 国产精品手机播放| 九九热播视频在线精品6| 亚洲一卡二卡三卡四卡无卡网站在线看| 欧美日韩一卡| 97超碰成人在线| 成+人+亚洲+综合天堂| 性爱在线免费视频| 天天综合日日夜夜精品| 国产精品色综合| 亚洲色图综合久久| 女人黄色免费在线观看| 国产精品免费久久久| 精品精品国产毛片在线看| 在线成人性视频| 日韩国产欧美三级| 国产激情第一页| 亚洲人成网站精品片在线观看| 黄色片中文字幕| 亚洲成人久久电影| 污污片在线免费视频| 成人h视频在线| re久久精品视频| 男人操女人免费软件| 国产.精品.日韩.另类.中文.在线.播放| 在线看片中文字幕| 福利视频导航一区| 免费观看国产视频| 色综合久久久888| 国产精品1区| 一区二区三区偷拍| 日本sm残虐另类| 一本色道久久综合亚洲精品图片| 亚洲午夜激情网站| 国产草草影院ccyycom| 亚洲天堂视频在线观看| 看黄在线观看| 精品一区二区视频| 亚洲国产一区二区三区a毛片| 天天操夜夜操很很操| 成人欧美一区二区三区1314| 中文有码在线播放| 国产午夜精品免费一区二区三区| 深夜av在线| 久久99精品久久久久久三级| 亚洲激情网址| 亚洲国产精品自拍视频| 午夜精品久久久久久久| 色婷婷在线视频| 久久久综合av| 国产伦精品一区二区三区在线播放 | 欧美狂猛xxxxx乱大交3| 色综合天天狠狠| 国产精品视频二区三区| 国产精品高潮呻吟久久av无限| 精品久久影院| www.这里只有精品| 亚洲色图欧美在线| 999av视频| 久久人人爽人人爽人人片av高请 | 免费极品av一视觉盛宴| 国产成人精品免费一区二区| 青春草免费视频| 亚洲成年网站在线观看| 擼擼色在线看观看免费| 欧美国产视频在线观看| 日本在线不卡视频| 777777国产7777777| 日韩欧美亚洲一区二区| 2019中文字幕在线电影免费 | 日韩av有码| 黄色一级片免费的| 一区二区免费在线| 亚洲av片在线观看| 国产精品久久久久久久久借妻| 日韩av自拍| 欧美日韩一区二区区别是什么 | 性欧美xxxx视频在线观看| 台湾色综合娱乐中文网| 簧片在线免费看| 亚洲精品v日韩精品| 午夜影院免费视频| 国产欧美日韩亚洲精品| 精品福利av| 欧美人妻一区二区三区| 在线91免费看| 欧美日韩国产观看视频| 日本最新一区二区三区视频观看| 激情综合网激情| 日本三级2019| 在线亚洲男人天堂| av不卡一区| 99视频在线视频| 亚洲国产精品影院| 91社区在线观看播放| 国产精品日韩二区| 青青草伊人久久| 精品91久久久| 久久精品欧美视频| 美女午夜精品| 日本三级黄色网址| 午夜伊人狠狠久久| 麻豆tv入口在线看| 免费av一区二区三区| 国产精品一区2区| 中文字幕一区二区三区四区免费看 | 中文字幕免费视频| 欧美成人精品二区三区99精品|