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

相关推荐
油泼辣子多加8 小时前
2025年06月30日Github流行趋势
github
ai小鬼头8 小时前
AIStarter如何快速部署Stable Diffusion?**新手也能轻松上手的AI绘图
前端·后端·github
寻月隐君13 小时前
Rust 异步编程实践:从 Tokio 基础到阻塞任务处理模式
后端·rust·github
超龄超能程序猿13 小时前
Bitvisse SSH Client 安装配置文档
运维·ssh·github
Natsume171017 小时前
嵌入式开发:GPIO、UART、SPI、I2C 驱动开发详解与实战案例
c语言·驱动开发·stm32·嵌入式硬件·mcu·架构·github
荔枝吻17 小时前
【AI总结】Git vs GitHub vs GitLab:深度解析三者联系与核心区别
人工智能·git·github
幻凡ss18 小时前
github pages使用免费CDN加速-netlify
github·github pages·github cdn·github pages加速·netlify加速github·hexo博客免费cdn加速·个人博客免费cdn加速
我是哪吒20 小时前
分布式微服务系统架构第155集:JavaPlus技术文档平台日更-Java线程池实现原理
后端·面试·github
DeepSeek-大模型系统教程1 天前
推荐 7 个本周 yyds 的 GitHub 项目。
人工智能·ai·语言模型·大模型·github·ai大模型·大模型学习