You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitLab Release中自动添加编译生成的.hex固件文件?

可行方案实现步骤

1. 准备GitLab Runner与IAR编译环境

  • 部署Windows类型的GitLab Runner并注册到你的项目,给runner打上专属标签(比如iar-compiler),方便CI任务调度。
  • 在runner所在机器安装IAR Embedded Workbench,确保iarbuild.exe(IAR命令行编译工具)可直接调用:要么将其路径添加到系统PATH,要么在CI脚本中指定完整路径(例如C:\Program Files (x86)\IAR Systems\Embedded Workbench 9.0\common\bin\iarbuild.exe)。

2. 编写.gitlab-ci.yml配置文件

通过CI/CD流水线实现编译生成.hex和自动上传至Release两个阶段:

阶段1:编译生成.hex文件

利用IAR命令行工具编译项目,同时将.hex文件作为构建产物保存,供后续发布阶段使用:

stages:
  - build
  - release

build:
  stage: build
  tags:
    - iar-compiler  # 指定使用配置好的IAR runner
  script:
    # 替换为你的IAR项目文件路径和编译配置(比如Release)
    - "iarbuild.exe ./your_project_path/Project.ewp -build Release"
  artifacts:
    paths:
      - ./Obj/YourFirmware.hex  # 替换为实际的.hex输出路径
    expire_in: 1 week  # 构建产物过期时间,可按需调整

阶段2:自动创建Release并上传.hex资产

仅当创建Git标签时触发该阶段,通过GitLab官方工具或API完成Release创建与资产上传:

方式一:使用release-cli(推荐)

release-cli是GitLab官方提供的Release管理工具,需确保runner已安装该工具:

release:
  stage: release
  tags:
    - iar-compiler
  needs:
    - build  # 依赖build阶段完成
  only:
    - tags  # 仅当创建标签时触发
  script:
    - |
      release-cli create --name "Release $CI_COMMIT_TAG" --tag-name $CI_COMMIT_TAG \
        --assets-path "./Obj/YourFirmware.hex" \
        --description "自动发布的固件版本,包含可烧录的.hex文件"
方式二:使用GitLab API(无需额外工具)

通过curl调用GitLab API完成操作,利用GitLab自动注入的CI_JOB_TOKEN进行身份认证:

release:
  stage: release
  tags:
    - iar-compiler
  needs:
    - build
  only:
    - tags
  script:
    - |
      # 1. 创建Release
      curl --request POST --header "PRIVATE-TOKEN: $CI_JOB_TOKEN" \
        --data "name=Release $CI_COMMIT_TAG&tag_name=$CI_COMMIT_TAG&description=自动发布固件" \
        "$CI_API_V4_URL/projects/$CI_PROJECT_ID/releases"
      
      # 2. 上传.hex文件作为Release资产
      curl --request POST --header "PRIVATE-TOKEN: $CI_JOB_TOKEN" \
        --header "Content-Type: application/octet-stream" \
        --data-binary "@./Obj/YourFirmware.hex" \
        "$CI_API_V4_URL/projects/$CI_PROJECT_ID/releases/$CI_COMMIT_TAG/assets/links?name=YourFirmware.hex"

3. 关键注意事项

  • 确认IAR项目配置中,.hex文件的输出路径与CI脚本中指定的路径完全一致。
  • 确保runner具备足够权限:可访问GitLab仓库、执行IAR编译命令、读写项目文件。
  • 项目CI/CD设置中,需允许作业使用CI_JOB_TOKEN访问GitLab API(默认已开启)。

内容的提问来源于stack exchange,提问作者NicoCaldo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 04:01:56