成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何使用GitHub Actions自動化部署我們的項目

開發 前端
本篇文章將為大家介紹如何使用 GitHub Actions 來實現我們的代碼在服務器上自動部署。

前面我們已經完成了項目的部署,但是每次部署都需要手動操作,過程繁瑣又浪費時間。因此,我們需要使用自動化工具來實現自動化部署。本篇文章將為大家介紹如何使用 GitHub Actions 來實現我們的代碼在服務器上自動部署。

GitHub Actions

GitHub Actions 是 GitHub 提供的一個自動化工具,可以幫助我們實現自動化部署。它可以在我們的代碼倉庫中設置一些規則,當我們的代碼發生變化時,GitHub Actions 會自動執行這些規則,從而實現自動化部署。

根據我們的項目,我們需要在 GitHub Actions 做的操作很簡單:

  1. 連接服務器
  2. 拉取最新代碼
  3. 執行 docker 相關命令完成部署(根據你項目本身部署方式來決定)

我們在根目錄新建一個 .github/workflows/deploy.yml 文件,在其中設置我們的規則。

name: Deploy Remote Server

on:
  push:
    branches:
      - master # 觸發條件的分支,可以根據需要修改

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: xxx
        uses: xxx # 檢出代碼

      ...  # 寫一些規則步驟

通過 SSH 連接阿里云服務器

首先我們要做的是讓github Actions可以通過SSH連接到我們的服務器,這樣才能在我們服務器是執行相關部署命令。

所以我們需要在服務器上生成一個公鑰和一個私鑰,然后將公鑰添加到服務器的authorized_keys文件中。這樣,github Actions就可以通過私鑰連接到服務器了。那么,我們如何在阿里云服務器生成公鑰和私鑰呢?

登錄阿里云,進入控制臺。

圖片

在控制臺中找到密鑰對,點擊創建密鑰對輸入名稱之后點擊確定會自動下載一個私鑰文件name.pem,記得保存好這個私鑰文件。

創建完成之后復制公鑰文件的內容。

圖片

然后遠程連接到我們的服務器實例執行nano ~/.ssh/authorized_keys或者命令,將公鑰文件的內容粘貼到authorized_keys文件中(記得是追加到已有文件后面)。此時我們就可以通過私鑰連接到服務器了。

圖片

然后我們開始配置Github Actions相關參數。進入我們需要部署的 git 倉庫,然后配置相關參數SERVER_IP:服務器ip,SSH_USER:服務器用戶名,SSH_PRIVATE_KEY:連接服務器私鑰(就是我們前面下載的私鑰文件的內容)

圖片

配置完成之后,我們就可以在deploy.yml通過${{ secrets.SSH_USER }}等等來獲取配置的參數了。我們首先測試是否能連接到服務器。

name: TEST SSH

on:
  push:
    branches:
      - master # 觸發條件,可以根據需要修改

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v2 # 檢出代碼,包括 deploy.sh 文件

      - name: Deploy to Remote Server
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.SERVER_IP }}
          username: ${{ secrets.SSH_USER }}
          key: ${{ secrets.SSH_PRIVATE_KEY }}
          script: |
            echo "ssh 連接成功"

然后提交一下代碼,去看一下 actions 中的情況。

圖片

發現已經連接成功了。點進去也可以看到相關日志信息。

圖片

部署代碼

接下來我們需要編寫部署代碼的相關規則了。上面已經提到過只需要三步即可:

  1. 連接服務器
  2. 拉取最新代碼 git pull
  3. 執行 docker 相關命令完成部署 sudo docker compose...

我們在deploy.yml中添加如下代碼:

name: Deploy to Remote Server

on:
  push:
    branches:
      - master # 觸發條件,可以根據需要修改

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Deploy to Remote Server
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.SERVER_IP }}
          username: ${{ secrets.SSH_USER }}
          key: ${{ secrets.SSH_PRIVATE_KEY }}
          script: |
            set -e # 如果任何命令失敗,立即退出
            cd ~/web_server/fs-admin/admin_nest # 進入項目目錄
            git pull # 拉取最新代碼
            sudo docker compose down --rmi all # 停止并刪除所有容器
            sudo docker compose --env-file .env.prod up -d  # 構建并啟動容器

注意執行docker compose xxx up的時候需要加上-d讓 docker 后臺運行,不然會導致github actions會處于一直執行的狀態。

我們提交代碼,看下日志是否能正常部署。

圖片ima

可以看到已經成功部署了,同時后端接口也可以訪問通了。后續我們代碼有更新的話直接提交到 master 分支即可完成自動部署了,是不是非常方便!

參考資料

[1] https://github.com/qddidi/fs-admin: https://github.com/qddidi/fs-admin

責任編輯:龐桂玉 來源: web前端進階
相關推薦

2024-01-24 18:50:21

WebFTP服務器

2022-11-15 17:07:40

開發自動化前端

2021-05-13 21:21:50

React應用GitHub

2019-11-26 08:00:00

GitHubGitHub ActiAzure

2021-05-07 08:03:15

微服務JenkinsGitHub項目

2013-11-27 11:34:43

自動化部署Python

2024-02-20 08:08:43

2022-08-29 20:06:04

樓宇自控物聯網

2024-09-13 15:32:18

2019-08-12 13:47:41

GitHub代碼開發者

2017-10-09 17:52:57

MySQL自動化測試GitHub

2020-11-25 10:42:57

Python代碼工具

2013-03-22 15:15:28

自動化管理部署虛擬化

2022-09-08 10:07:48

5G自動化

2021-08-04 08:27:00

VueReact自動化部署

2024-11-21 15:24:49

2019-10-30 14:47:05

工具代碼開發

2015-02-04 09:17:38

亞馬遜AWS云自動化

2014-03-11 11:10:10

PowerShell自動化腳本

2022-12-21 08:20:01

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久一区二区av | 亚洲美女一区 | 超黄毛片 | 日韩电影一区 | 日本免费在线观看视频 | 久久中文字幕av | 国产精品久久久久久久久久久久久久 | 成人高潮片免费视频欧美 | 日韩美香港a一级毛片免费 国产综合av | 欧美一区二区三区,视频 | 成人在线视频免费观看 | 国产一级一片免费播放 | 欧洲精品一区 | 亚洲第一中文字幕 | 欧美亚洲视频在线观看 | 少妇无套高潮一二三区 | 一本久久a久久精品亚洲 | 久久久精品高清 | 久久精彩视频 | 欧美日韩成人在线 | 中文字幕一区二区三区日韩精品 | 久久亚洲一区二区三区四区 | 亚洲激情一区二区三区 | 欧日韩在线 | 成人在线精品视频 | 欧美 日韩精品 | 男女羞羞视频免费 | 天天爽网站 | 成人无遮挡毛片免费看 | 国产精品毛片一区二区三区 | 男人的天堂一级片 | 久久久久国产精品一区二区 | 中文精品视频 | 欧美在线资源 | 久久久资源 | 综合网中文字幕 | 久久极品 | 91精品国产综合久久久久久丝袜 | 国产精品成人国产乱一区 | 国产成视频在线观看 | 99亚洲精品视频 |