<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      如何用Github鉤子做自動部署

      最近機緣巧合的購置了域名和服務器,不用實在是浪費,再加上一直沒有屬于自己的個人網站,所以打算用hexo在服務器上玩一下,這樣也就不用再糾結用Github pages還是Gitee pages了。當然,今天的主題并不是博客搭建,而是如何利用Github的鉤子,將博客代碼部署到服務器上。

      畢竟Github的鉤子已經歷史悠久了,網上有很多開源項目可以拿來用,所以我并沒有造輪子,而是去找了5K star的開源Go項目webhook,這個工具的作用是接收Github倉庫的變動通知,然后調用你配置好的shell腳本,腳本可以寫上代碼拉取的命令或是編譯的操作等,具體根據個人需求而定。簡而言之,它只起著拉通Github與你服務器的作用。

      file

      webhook工具安裝

      因為webhook是Go語言開發的,所以要先安裝Go語言。

      yum install -y golang
      

      然后就可以用go命令安裝webhook了。

      go get github.com/adnanh/webhook
      

      命令安裝位置可以通過go env查看,GOPATH就是命令安裝路徑,比如我的命令就安裝在/root/go/bin/webhook。

      go env
      ...
      GOOS="linux"
      GOPATH="/root/go"
      ...
      

      生成ssh key

      在編寫腳本之前確保服務器有權限拉取github代碼,如果已經做了配置可跳過本節去看部署腳本編寫。ssh key是代碼托管平臺(github、gitee、coding、gitlab等)鑒別你是否有權拉取代碼的身份標識,生成只需一行命令和一路回車就行了。

      ssh-keygen
      
      Generating public/private rsa key pair.
      Enter file in which to save the key (/root/.ssh/id_rsa): 
      Enter passphrase (empty for no passphrase): 
      Enter same passphrase again: 
      Your identification has been saved in /root/.ssh/id_rsa.
      Your public key has been saved in /root/.ssh/id_rsa.pub.
      The key fingerprint is:
      SHA256:M6sCf/J/hOu3zLxMkFUVmv3iWIa30CfbxiWqmWCt1YE root@iZwz96y36tk2ecnykzituxZ
      The key's randomart image is:
      +---[RSA 2048]----+
      |            ..o. |
      |           . o   |
      |          . o    |
      |       . o .     |
      |      E S.  .    |
      |  .  . ..Oo ..   |
      |   oo o ==Boo .  |
      |   .++.+o#== .   |
      |    .=*+=+@o     |
      +----[SHA256]-----+
      

      生成后可通過cat ~/.ssh/id_rsa.pub命令查看,最后將key加入github即可,加法不再贅述,請自行谷歌。

      cat ~/.ssh/id_rsa.pub
      
      ssh-rsa AAAAB3NzaC1yc2EAAAADAQHBAAABAQCv7LGVJUFdcLL+HZyRFTQIQCdre61Gch76lDVpmWSX9BGGRU3iQS7EU5qApFn1VSvt+yf4rMt2LEkuxGCm1wIyBKZ6LYDViZBeTAfx4BcM1mcpxOX6I/+r07mQ4llTz+poQB1Zp9Y60uk0tbGOVWlCoDBEvf9qeEnQ0qEczEkv7wcawV6pVhlXjFKZgq0EOQbCYoWMvPUl+dwDbTcl/h+7At1nlgfF7IuRHlKf18qvgnTRT2wpiuz4pWdoAi8LcY1JiR1z5OB0oCJ2euhyDND39G2NxZRS1FIVdgCEvioHtdoHOSoWBlcSj0fLFSnscBfRBrCd7yhOP7fFKfrowHMj root@iZwz96y36tk2ecnykzituxZ
      

      部署腳本編寫

      該shell腳本的主要目的是從github拉取代碼,腳本內容很簡單,只做了目錄的簡要判斷,代碼目錄存在則更新,不存在則克隆倉庫,工作目錄和倉庫名稱、地址請換成自己的。

      #!/bin/bash
      
      cd /home/www/website
      
      if [ ! -d "go-home" ]; then
        git clone https://github.com/pingyeaa/go-home.git
      fi
      
      cd go-home
      git pull
      

      webhook配置與啟動

      編寫配置文件hooks.json,格式如下。

      [
        {
          "id": "deploy-webhook",
          "execute-command": "deploy.sh",
          "command-working-directory": "/home"
        }
      ]
      
      • id:鉤子的id,可自定義
      • execute-command:要執行的腳本名,就是剛才編寫的部署腳本
      • command-working-directory:腳本所在目錄

      完成后通過webhook命令啟動,可以看到id為deploy-webhook的配置已經加載了,我們需要注意的是監聽的端口和路徑,等下要用到。

      /root/go/bin/webhook -hooks hooks.json -verbose
      
      [webhook] 2020/04/22 15:18:22 version 2.6.11 starting
      [webhook] 2020/04/22 15:18:22 setting up os signal watcher
      [webhook] 2020/04/22 15:18:22 attempting to load hooks from hooks.json
      [webhook] 2020/04/22 15:18:22 found 1 hook(s) in file
      [webhook] 2020/04/22 15:18:22   loaded: deploy-webhook
      [webhook] 2020/04/22 15:18:22 serving hooks on http://0.0.0.0:9000/hooks/{id}
      [webhook] 2020/04/22 15:18:22 os signal watcher ready
      
      http://0.0.0.0:9000/hooks/{id}
      

      Github Webhooks配置

      現在服務器已經啟動了webhook程序監聽9000端口,接下來僅需要告訴Github這個地址和端口就好了。

      打開倉庫設置頁,添加webhook。

      配置webhooks,Payload URL就是要通知的地址,把剛才打印出的端口和路徑填上即可,其他默認。

      file

      現在可以提交代碼測試了,如果推送失敗Github中會有錯誤提示,同樣的,成功不僅在Github中能看到,服務器的打印日志也有記錄。

      file

      file


      我是平也,這有一個專注Gopher技術成長的開源項目「go home」


      感謝大家的觀看,如果覺得文章對你有所幫助,歡迎關注公眾號「平也」,聚焦Go語言與技術原理。
      關注我

      posted @ 2020-04-26 10:33  MARIOOW  閱讀(1722)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 一本久道中文无码字幕av| 中文字幕av无码不卡| gogogo高清在线播放免费| 中文字幕亚洲人妻系列| 啦啦啦中文在线观看日本| 国产精品美女www爽爽爽视频| 日韩熟女精品一区二区三区| 精品中文字幕一区在线| 国产精品免费中文字幕| 亚洲成人av一区免费看| 亚洲第一精品一二三区| 中国凸偷窥xxxx自由视频| 久久综合伊人77777| 日本夜爽爽一区二区三区| 丝袜美腿亚洲综合在线观看视频| 欧美xxxxhd高清| 亚洲av精彩一区二区| 成在人线av无码免费高潮水老板| 国产一区日韩二区三区| 国产超碰人人做人人爰| 丰满人妻一区二区三区高清精品| 亚洲国产午夜福利精品| 亚洲一区二区三区丝袜| 91在线视频视频在线| 久久综合久中文字幕青草| 精品熟女少妇免费久久| 久久经精品久久精品免费观看| 大兴区| 一区二区三区黄色一级片| 潮喷失禁大喷水无码| 辽阳县| аⅴ天堂中文在线网| 欧美喷水抽搐magnet| 国产精品麻豆中文字幕| 亚洲中少妇久久中文字幕| 99久久国产综合精品女图图等你 | 色老99久久精品偷偷鲁| 亚洲无人区一区二区三区| 天天躁日日摸久久久精品| 日日噜噜大屁股熟妇| 一区二区三区不卡国产|