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

如何通过Azure Pipeline将Dart包发布至pub.dev

基于Azure Pipeline YAML自动发布Dart包到pub.dev

1. 获取pub.dev发布令牌

在本地环境执行pub token add pub.dev,按照提示完成身份验证后,复制生成的访问令牌(注意不要复制刷新令牌)。

2. 在Azure DevOps中配置保密变量

  • 进入你的Azure DevOps项目,打开流水线 > 库 > 变量组(也可直接在目标流水线的变量设置中操作)
  • 创建一个保密变量,命名为PUB_DEV_TOKEN,填入刚才复制的令牌值,勾选保密选项确保令牌不会明文泄露。

3. 编写YAML流水线配置

优先选择Ubuntu代理(Dart环境配置更简便),完整示例如下:

trigger:
  branches:
    include:
      - main # 按需修改触发发布的分支

pool:
  vmImage: 'ubuntu-latest'

variables:
- group: 你的变量组名称 # 若使用变量组存储令牌,替换为实际名称;直接用流水线变量可删除此行

steps:
- script: |
    # 安装Dart SDK
    sudo apt-get update
    sudo apt-get install dart
    # 将Dart加入系统环境变量
    export PATH="$PATH:/usr/lib/dart/bin"
    # 验证Dart安装状态
    dart --version
  displayName: '安装并配置Dart SDK'

- script: |
    pub get
    pub publish --dry-run
  displayName: '安装依赖并预检查包合法性'

- script: |
    # 创建pub缓存目录并写入认证信息
    mkdir -p ~/.pub-cache
    echo '{"accessToken":"$(PUB_DEV_TOKEN)","refreshToken":"","tokenEndpoint":"https://accounts.google.com/o/oauth2/token","scopes":["openid","https://www.googleapis.com/auth/userinfo.email"],"expiration":null}' > ~/.pub-cache/credentials.json
    # 执行自动发布(--force跳过交互确认)
    pub publish --force
  displayName: '发布Dart包到pub.dev'

关键注意事项

  • 令牌安全:PUB_DEV_TOKEN必须设为保密变量,禁止在流水线脚本中明文写入令牌。
  • 版本唯一性:pub.dev不允许重复版本号,需确保每次发布前更新pubspec.yaml中的version字段,可结合流水线变量或脚本实现版本号自动递增。
  • 预检查必做:pub publish --dry-run会模拟发布流程,提前发现依赖缺失、格式错误等问题,避免发布失败。
  • 代理选择:Ubuntu代理的Dart环境配置更简洁,Windows代理需额外手动配置环境变量,步骤更繁琐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 02:27:18