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

相关推荐
m0_694845571 小时前
tinylisp 是什么?超轻量 Lisp 解释器编译与运行教程
服务器·开发语言·云计算·github·lisp
June`2 小时前
muduo项目排查错误+测试
linux·c++·github·muduo网络库
weixin_6684 小时前
GitHub 2026年AI项目详细数据汇总表-AI分析-分享
人工智能·github
CoderJia程序员甲20 小时前
GitHub 热榜项目 - 日榜(2026-02-05)
ai·开源·大模型·github·ai教程
weixin_6681 天前
GitHub 2026年AI项目热度分析报告-AI分析-分享
人工智能·github
MicrosoftReactor1 天前
技术速递|GitHub Copilot CLI 斜杠命令速查表
github·copilot·cli
wu~9701 天前
GitHub永不遗忘,使用git push -f来覆盖的提交依旧保留
git·github
m0_694845571 天前
music-website 是什么?前后端分离音乐网站部署实战
linux·运维·服务器·云计算·github
独自破碎E1 天前
已经 Push 到远程的提交,如何修改 Commit 信息?
开发语言·github
jiang_changsheng1 天前
工作流agent汇总分析 2
java·人工智能·git·python·机器学习·github·语音识别