当前位置: 首页 > news >正文

17素材网站广西建设职业技术学院官网

17素材网站,广西建设职业技术学院官网,做网站怎么买服务器,哈尔滨建设工程🚀 CI/CD 全流程全解 一篇适合设备端开发者、嵌入式工程师、新手工程师的保姆级教程,涵盖从 GitLab CI/CD 搭建到边缘设备部署。 🧠 目录 CI/CD 简介环境准备创建 .gitlab-ci.yml自定义编译脚本部署配置 SSH 密钥流程示意图调试技巧实际应用…

🚀 CI/CD 全流程全解

一篇适合设备端开发者、嵌入式工程师、新手工程师的保姆级教程,涵盖从 GitLab CI/CD 搭建到边缘设备部署。


🧠 目录

  1. CI/CD 简介
  2. 环境准备
  3. 创建 .gitlab-ci.yml
  4. 自定义编译脚本
  5. 部署配置 SSH 密钥
  6. 流程示意图
  7. 调试技巧
  8. 实际应用场景

CI/CD 简介

缩写全称作用
CIContinuous Integration自动编译、测试
CDContinuous Deployment自动部署、上线

环境准备

✅ 安装 GitLab Runner

sudo apt install gitlab-runner
sudo gitlab-runner register

注册信息填写示例:

GitLab URL: https://gitlab.com
Token: <项目Token>
描述: edge-runner
执行器: shell

创建 .gitlab-ci.yml

在项目根目录新建:

stages:- build- deployvariables:PROJECT_DIR: "/build/project"build:stage: buildscript:- echo "🔧 开始编译..."- mkdir -p $PROJECT_DIR- cp -r * $PROJECT_DIR- cd $PROJECT_DIR- bash scripts/build_rk3588.shartifacts:paths:- $PROJECT_DIR/output/deploy:stage: deployscript:- echo "🚀 开始部署..."- scp $PROJECT_DIR/output/* root@192.168.1.100:/opt/heahu/- ssh root@192.168.1.100 'systemctl restart heahu.service'

自定义编译脚本

scripts/build_rk3588.sh

#!/bin/bash
export TOOLCHAIN=/opt/toolchains/rk3588
export PATH=$TOOLCHAIN/bin:$PATHmkdir -p output
arm-linux-gnueabihf-g++ -o output/main core/main.cpp
cp configs/*.yaml output/

部署配置 SSH 密钥

ssh-keygen -t rsa -f deploy_key

将公钥添加到设备 ~/.ssh/authorized_keys

私钥添加到 GitLab 的变量:

变量名
SSH_PRIVATE_KEYdeploy_key 内容

.gitlab-ci.yml 添加:

before_script:- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'- eval $(ssh-agent -s)- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -- mkdir -p ~/.ssh- chmod 700 ~/.ssh- ssh-keyscan 192.168.1.100 >> ~/.ssh/known_hosts

流程示意图

GitLab 提交代码↓
CI Runner 编译构建↓
打包产物↓
部署到设备↓
自动重启服务

调试技巧

  • GitLab -> CI/CD -> Pipelines -> 查看日志
  • 构建失败时添加 echo 输出诊断信息
  • 确保 Runner 有权限连接设备

实际应用场景

场景示例
模型更新提交新 .rknn 自动替换部署
OTA 升级提交代码后自动部署
一键测试本地提交触发部署设备

如果你还需要 VSCode + GitLab 使用教程、边缘设备系统初始化脚本、部署模型自动更新流程等,欢迎关注后续内容。

http://www.dtcms.com/a/569387.html

相关文章:

  • Spring Boot3零基础教程,Reactive-Stream 规范核心接口,笔记103
  • 第三篇:C++ 中的noexcept:从 “承诺不抛异常” 到编译器判断
  • 广州网站优化服务商做俄罗斯外贸网站推广
  • 4.4 【2014统考真题】
  • 社交风格与销售培训讲师培训师唐兴通谈社交销售大客户营销DISC销售大五人格MBTI销售方法论实践
  • 【SSL】什么是自签名证书及使用Java生成SSL自签名证书
  • 从繁琐到高效:文档抽取技术驱动医疗健康行业的数字化转型
  • 做网站 阿里云河南推广网站
  • 在VSCode+Guider基础上:拖动滑条控件,显示滑条数值
  • 斯坦福大学 | CS336 | 从零开始构建语言模型 | Spring 2025 | 笔记 | Lecture 7: Parallelism 1
  • cookie、session、token、JWT(JSON Web Token)
  • 免费学平面设计的网站如何开设一个网站
  • WebGIS开发智慧校园(14)地图控件的添加
  • Agent Demo初体验
  • Cursor 项目实战:AI播客策划助手开发指南(一)——需求分析与功能原型
  • 当AI遇上Python:重新定义编程学习的《AIGC高效编程:Python从入门到高手》
  • 成都上界品牌设计事务所小红书搜索优化
  • Apache Calcite查询规划
  • Linux网络——传输层协议UDPTCP
  • useState 真的那么简单吗?我在项目里踩过的坑
  • 如何用5种实用方法将电脑上的音乐传输到安卓手机
  • 做网页到哪个网站找素材物流网站有哪些
  • MP4视频播放问题
  • HR8837:赋能低压直流电机的高效安全驱动芯片
  • Linux源码安装FFmpeg和av库
  • 亳州市城乡建设局网站ps设计网站首页效果图
  • Syncthing Linux 部署教程
  • 做疏通什么网站推广好网页制作软件 ad
  • html 和css基础常用的标签和样式(2)-css
  • 【数据集】【YOLO】【目标检测】共享单车数据集,共享单车识别数据集 3596 张,YOLO自行车识别算法实战训推教程。