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执行完后就可以看到我的最新页面了。

相关推荐
VIP_CQCRE6 分钟前
用 GitHub 做开发者营销:把 Ace Data Cloud 的 API 能力变成可运行项目
ai·github·api·开发者工具·acedatacloud
凌云拓界14 分钟前
NodeVerdict:Node.js 原生诊断数据可视化工具
信息可视化·架构·typescript·开源·node.js·github·bug
数智化管理手记2 小时前
本地云数据存储算力总是不够用?云计算如何协助架构升级?
架构·云计算·github
苏灿烤鱼2 小时前
今日 GitHub 热门|Agent 云端电脑登顶,+1,891 项目却只排第三(08.06)
github·agent·资讯
七牛开发者2 小时前
“打透” Harness:用 GitHub Copilot 跑通从原型、规划到实现与评审的 AI Coding 工作流
人工智能·github·copilot
带娃的IT创业者2 小时前
Spec-Kit 与物理智能的范式跃迁:当 GitHub 成为世界模型的协作基础设施
github·世界模型·规范驱动开发·机器人开发·开源协作·物理智能
TunerT_TQ2 小时前
Valhalla 静态工程审阅 #002|字节 LatentSync 源码证据驱动评测【大厂开源基础设施特辑】
架构·github
八号当铺2 小时前
我做了一个多端基金收益助手:从养基宝数据到 Web、桌面端、浏览器插件和 IDE 插件
前端·人工智能·github
一次旅行3 小时前
OpenAI 新版提示词指南
人工智能·chatgpt·github
TunerT_TQ4 小时前
Valhalla 静态工程审阅 #021|华为MindSpore 源码证据驱动评测【大厂开源基础设施特辑】
c++·开源·github·mfc·#大模型开源·#华为开源·#深度学习