【記】Github Actions自動部署騰訊雲

雙11剁手一臺騰訊雲服務器,加上近期Github提供了Github Actions,琢磨着要不搞搞看,從0到1發佈vue項目到服務器上。花了一成天時間搗鼓,淚目。。。記錄一下踩過的坑!!!html

配置騰訊雲相關

複製本機~/.ssh 目錄下的公鑰:vue

# 牆裂建議使用clip複製,手動複製可能會遺漏最後的回車
clip < ~/.ssh/id_rsa.pub
複製代碼

登陸騰訊雲服務器,安裝nginx:node

# 添加CentOS 7 EPEL 倉庫
sudo yum install epel-release
# 安裝Nginx
sudo yum install nginx
# 啓動nginx
sudo systemctl start nginx
# 啓動防火牆
sudo systemctl start firewalld.service
# 啓動HTTP和HTTPS傳輸
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
複製代碼

粘貼公鑰到服務器~/.ssh/authorized_keys文件中:nginx

vim ~/.ssh/authorized_keys
複製代碼

右鍵粘貼後,退出編輯模式,保存便可。git

添加blank.yml文件

在根目錄新建.github文件夾,在.github文件夾下新建workflows文件夾,在workflows文件夾下新建blank.yml文件。(固然也能夠使用官方提供的模板) github

複製~/.ssh 目錄下的私鑰:npm

# 牆裂建議使用clip複製,手動複製可能會遺漏最後的回車
clip < ~/.ssh/id_rsa
複製代碼

粘貼私鑰到Settings > Secrets中:ubuntu

編輯blank.yml:vim

# 一個workflow,名爲deploy to tengxunyun
name: deploy to tengxunyun

on: # 此CI/CD觸發時的事件
  push: # 在代碼提交時自動觸發
    branches:
      - master

# 一個 CI/CD 的工做流有許多 jobs 組成,好比最典型的 job 是 lint,test,build。
jobs: 
  build: # 構建job
    runs-on: ubuntu-latest # 跑workflow的服務器系統
    steps: # job的一系列動做
      # 切換分支獲取源碼
      - name: Checkout # step的名稱,將會在 github action 的控制檯中顯示
        # 選擇一個action,能夠理解爲若干 steps.run,有利於代碼複用
        uses: actions/checkout@master
      # 安裝使用 node:10
      - name: use Node.js 10
        uses: actions/setup-node@v1
        with:
          node-version: 10
      # 運行命令,npm install && npm run build
      - name: npm install and build
        run: |
          npm install
          npm run build
        env:
          CI: true
      # 部署到騰訊雲服務器
      - name: Deploy to Server
        uses: easingthemes/ssh-deploy@v2.0.7
        env:
            # 本地.ssh文件下的私鑰id_rsa,存在secrets的TOKEN中
            SSH_PRIVATE_KEY: ${{ secrets.TOKEN }} 
            # 複製操做的參數。"-avzr --delete"意味部署時清空服務器目標目錄下的文件
            ARGS: "-avzr --delete" 
            # 源目錄,相對於$GITHUB_WORKSPACE根目錄的路徑
            SOURCE: "dist/" 
            # 服務器域名
            REMOTE_HOST: "49.233.195.71" 
            # 騰訊雲默認用戶名爲root
            REMOTE_USER: "root" 
            # 目標目錄
            TARGET: "/usr/share/nginx/html" 

複製代碼

待Github的Actions面板顯示構建完成後,訪問http://49.233.195.71試試,完美,大功告成。附上demo地址bash

參考:
ssh-deploy文檔
GitHub Actions 入門教程 -- 阮一峯
真香!GitHub Action一鍵部署

相關文章
相關標籤/搜索