CircleCI 自动化部署 #68

简介: CircleCI 自动化部署 #68

什么是 CircleCI


CircleCI 是一个持续集成/持续部署的服务,开源项目可以免费使用,他的价格取决于你需要并发构建实例的数量,单个实例是免费的。


添加 ssh 密钥


$ ssh host_name

$ cd ~/.ssh/

$ ssh-keygen -t rsa 创建公钥(.pub)和私钥

$ cat id_rsa复制私钥所有内容

要使 能够将文件发送到服务器,单击"构建"屏幕上项目名称旁边的 来访问项目的构建设置。在设置屏幕上,找到权限部分下的 权限链接。单击" 添加 密钥"按钮,然后添加服务器的主机名和私钥的内容CircleCIcogSSHSSH


要将此密钥导入 环境,我们使用 添加 SSH 在设置屏幕上显示密钥的指纹。复制此指纹并将其插入上述命令,我们的构建环境现在可以使用该密钥。CIadd_ssh_keys密钥后,CircleCI


提供 Hostkey 进行验证


当 服务器尝试连接到您的主机时,它可能会提示您验证主机密钥。提示是自动化的氪星石: 环境将无限期挂起,等待用户给出响应。可以禁用此验证,但将正确的密钥添加到 文件是一个更好的解决方案。没有用于添加主机密钥的语义解决方案,但一种选择是将主机密钥添加为环境变量。要添加环境变量,请转到项目设置,然后单击"构建设置"下的"环境变量"链接。单击" 添加变量"按钮,然后添加一个以 服务器主机密钥内容命名的新值。要获取主机密钥,请在终端中运行以下CircleCICIknown_hostsCircleCIREMOTE_HOSTKEY


复制下 这个开头的所有内容,粘贴到ip ecdsa-sha2-nistp256$ cd ~/.ssh/known_hosts


新建环境变量


在这个页面进行新建环境变量


$REMOTE_HOSTKEY   //刚复制的主机密钥
$SSH_USER     // 服务器用户名
$SSH_IP           // 服务器ip


然后我们可以在构建环境中使用此变量将主机密钥添加到 文件中known_hosts


部署命令


剩下的就是将文件传输到远程服务器上

针对 分支进行master


最终配置文件


version: 2.0
jobs:
  build:
    docker:
      - image: circleci/node:latest
    working_directory: ~/circleci-demo-workflows
    steps:
      - checkout
      - run: sudo npm install -g npm@6
      - run: npm install
      - save_cache:
          key: v1-dependencies-{{ checksum "package.json" }}
          paths:
            - node_modules
      - run: npm run build
      - run: echo '部署开始'
      - run: sudo apt-get update && sudo apt-get install rsync
      - restore_cache:
          keys:
            - v1-dependencies-{{ checksum "package.json" }}
            - v1-dependencies
      - add_ssh_keys:
          fingerprints:
            - "bd:dd:23:90:d7:86:80:d8:92:31:1b:41:09:09:27:87"
      - run: echo $REMOTE_HOSTKEY >> ~/.ssh/known_hosts
      - deploy:
          name: deploy
          command: |
            if [ "${CIRCLE_BRANCH}" = "master" ]; then
              rsync -avce ssh build $SSH_USER@$SSH_IP:/data/corki-ui-web/
            else
              echo "Not master branch, dry run only"
            fi
      - run: echo '部署完毕'
workflows:
  version: 2
  scheduled-workflow:
    triggers:
      - schedule:
          cron: "0 0 * * *"
          filters:
            branches:
              only: master
    jobs:
      - build

代码流程:

  • 安装特定版本 ,npmsudo npm install -g npm@6
  • 安装 包npmnpm install
  • 缓存文件save_cache
  • 打包npm run build
  • 安装传输命令sudo apt-get update && sudo apt-get install rsync
  • 恢复缓存 ,需先缓存keyrestore_cache
  • 添加 密钥sshadd_ssh_keys
  • 推送文件到服务器deploy


部署


     选择环境

  • 选择 镜像(这里以 为例)dockernode
  • 开始构建

例子



总结


超级简单有木有,部署完成后,只要 分支有了改动,就会自动发布,哈哈哈。再也不用去手动发布了。master

目录
相关文章
|
存储 缓存 C语言
TCM、ITCM、DTCM
TCM、ITCM、DTCM
2266 0
|
分布式计算 Java 大数据
Apache SeaTunnel 3 分钟入门指南
Apache SeaTunnel 3 分钟入门指南
1689 0
|
8月前
|
存储 JSON 前端开发
《解构React Server Components:服务端序列化与流式传输的底层逻辑》
本文深入解析React Server Components(RSC)的核心技术逻辑,重点阐述其如何在服务端完成组件序列化与流式传输。文章指出,RSC并非服务端渲染升级版,而是通过特殊JSON格式,将组件拆解为含类型标识、属性及数据依赖的结构化数据,同时剥离客户端无关代码。服务端采用流式传输,按组件优先级分块下发,支持边获取异步数据边传输,客户端则通过增量解析与实时渲染,接收数据后立即构建组件树,再结合本地代码完成交互组件激活。这种前后端协作模式,大幅优化首屏加载与客户端性能,为大型前端应用提供新的架构思路。
227 2
|
人工智能 运维 监控
2025年阿里云服务器配置选择全攻略:CPU、内存、带宽与系统盘详解
在2025年,阿里云服务器以高性能、灵活扩展和稳定服务助力数字化转型,提供轻量应用服务器、通用型g8i实例等多样化配置,满足个人博客至企业级业务需求。针对不同场景(如计算密集型、内存密集型),推荐相应实例类型与带宽规划,强调成本优化策略,包括包年包月节省成本、ESSD云盘选择及地域部署建议。文中还提及安全设置、监控备份的重要性,并指出未来可关注第九代实例g9i支持的新技术。整体而言,阿里云致力于帮助用户实现性能与成本的最优平衡。 以上简介共计238个字符。
|
SQL 人工智能 自然语言处理
【AI 技术分享】大模型与数据检索的探索实践
本文基于2024年9月27日与阿里云合办的线下沙龙分享整理而成,探讨如何通过大语言模型(LLM)让数据访问更简单。随着企业数据量增长,传统数据访问方式已难以满足需求。LLM结合自然语言检索,使非技术用户能直接用自然语言与数据交互,降低数据访问门槛。文章介绍了NL2SQL技术,通过LLM理解自然语言问题并生成SQL查询,实现高效数据获取。同时,探讨了AskTable架构及其在实际应用中的挑战与解决方案。
1518 5
【AI 技术分享】大模型与数据检索的探索实践
|
运维 Kubernetes 数据处理
阿里云Argo X K8s玩转工作流引擎,实现大规模并行计算
Kubernetes已经成为事实的云原生操作系统,成为业务上云、容器化的标准。从过去无状态应用、企业核心应用,到现在AI时代的数据处理、AI训练、科学仿真等,越来越多的离线任务跑在K8s上。
|
监控 网络协议 Ubuntu
这20款Linux带宽监控工具,是网工,都想全部要!
这20款Linux带宽监控工具,是网工,都想全部要!
1150 1
|
机器学习/深度学习 监控
在进行多任务学习时,如何确保模型不会过度拟合单一任务而忽视其他任务?
在进行多任务学习时,如何确保模型不会过度拟合单一任务而忽视其他任务?
334 2
|
测试技术
Vript:最为详细的视频文本数据集,每个视频片段平均超过140词标注 | 多模态大模型,文生视频
[Vript](https://github.com/mutonix/Vript) 是一个大规模的细粒度视频文本数据集,包含12K个高分辨率视频和400k+片段,以视频脚本形式进行密集注释,每个场景平均有145个单词的标题。除了视觉信息,还转录了画外音,提供额外背景。新发布的Vript-Bench基准包括三个挑战性任务:Vript-CAP(详细视频描述)、Vript-RR(视频推理)和Vript-ERO(事件时序推理),旨在推动视频理解的发展。
589 1
Vript:最为详细的视频文本数据集,每个视频片段平均超过140词标注 | 多模态大模型,文生视频