github 集成CICD自动化部署

1设置阿里云密钥对

由于我使用的是阿里云,需要在阿里云控制面板设置密钥对,导出的私钥ssh_key2.pem文件先暂存在本地;由于我好几次使用 ssh-keygen -t rsa -b 2048生成密钥,配置在cicd环境变量中未生效,建议通过阿里云控制面板生成密钥对生成;必须是完整的私钥,包括头尾,例如:

vbnet 复制代码
  -----BEGIN OPENSSH PRIVATE KEY-----
  ...内容...
  -----END OPENSSH PRIVATE KEY-----

添加图片注释,不超过 140 字(可选)

同时还需要修改服务器ssh配置文件,/etc/ssh/sshd_config中应有:

bash 复制代码
  PubkeyAuthentication yes #允许密钥形式连接
  PermitRootLogin yes #允许root用户登录

修改后需重启 sshd:

复制代码
  systemctl restart sshd

2 设置CICD环境变量

如图,直接在GitHub仓库settings中操作

添加图片注释,不超过 140 字(可选)

这里需要三个变量:

bash 复制代码
SERVER_SSH_KEY #导出的私钥ssh_key2.pem的内容,不要有多余的空格、换行或其他字符
USER_HOST #这里是服务器的ip
USER_NAME #我这里是root

3 配置action执行配置文件

添加图片注释,不超过 140 字(可选)

会在工程目录生成.github/workflows/main.yml文件,以下是具体配置,本地修改记得将文件从仓库pull到本地

yaml 复制代码
name: Build app and deploy to Tencent
on:
  #监听push操作
  push:
    branches:
      # mian分支,你也可以改成其他分支
      - main
jobs:
  # 任务ID
  build:
    # 运行环境
    runs-on: ubuntu-latest
    # 步骤
    steps:
    # 使用别人的action
    - uses: actions/checkout@v2
    # 步骤名称
    - name: npm install
      # 步骤执行指令
      run: npm install
    - name: npm run build
      run: npm run build
    # - name: Install SSH Client
    #   run: sudo apt-get update && sudo apt-get install -y openssh-client
    - name: ls
      run: ls -al && pwd
    # 命名这个任务为发布Deploy
    - name: Deploy
      uses: easingthemes/ssh-deploy@v2.1.5
      env:
        # SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY2 }}
        REMOTE_HOST: ${{ secrets.USER_HOST }}
        SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }}
        REMOTE_USER: ${{ secrets.USER_NAME }}
        REMOTE_PORT: 22
        SOURCE: "dist/"
        TARGET: "/home/www/dist"

SOURCE是我的vue工程打包目录,TARGET是目标服务器目录,/home/www是nginx静态文件目录,CICD执行完后就可以看到我的最新页面了。

相关推荐
海绵不是宝宝8179 小时前
连接远程服务器上的 jupyter notebook,解放本地电脑
服务器·jupyter·github
黑客飓风11 小时前
当GitHub宕机时,我们如何协作?
github·notepad++
mit6.82415 小时前
[Git] 如何拉取 GitHub 仓库的特定子目录
git·github
用户4665370150515 小时前
如何在 IntelliJ IDEA 中可视化压缩提交到生产分支
后端·github
用户4665370150515 小时前
git代码压缩合并
后端·github
若水晴空初如梦16 小时前
QT聊天项目DAY19
github
张较瘦_19 小时前
[论文阅读] 人工智能 | 当Hugging Face遇上GitHub:预训练语言模型的跨平台同步难题与解决方案
论文阅读·人工智能·github
掘金安东尼21 小时前
字节前端三面复盘:基础不花哨,代码要扎实(含高频题解)
前端·面试·github
寻月隐君21 小时前
Rust Web 开发实战:使用 SQLx 连接 PostgreSQL 数据库
后端·rust·github
kymjs张涛1 天前
零一开源|前沿技术周刊 #12
ios·google·github