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

如何在不同Bitbucket Pipeline之间跨仓库导入构建产物?

Bitbucket Pipelines跨仓库共享构建产物解决方案

不用额外搭建公网可访问的Nuget服务器,通过Bitbucket自带能力即可实现你的需求,以下是两种可行方案:

方案一:基于Bitbucket Downloads实现(适配你现有的操作习惯)

你已经完成了产物上传到Downloads板块的步骤,只需补充拉取逻辑即可:

  • 首先在库仓库的设置-仓库权限-访问令牌中生成带有Downloads读取权限的访问令牌,将令牌以保密变量的形式存入应用仓库的Pipelines变量中,建议命名为LIB_DOWNLOAD_TOKEN
  • 调整应用的bitbucket-pipelines.yml,在构建前增加拉取库产物的脚本,示例配置如下:
image: mcr.microsoft.com/dotnet/sdk:5.0

pipelines:
  default:
        - step:
            name: Build and Test
            caches:
              - dotnetcore
              - platform2
            script:
              # 新建标准化相对路径目录
              - mkdir -p NET5/Platform2/bin
              # 拉取对应分支的最新库产物,注意替换链接中的工作区、仓库名占位符
              - curl -L -u 你的仓库用户名:${LIB_DOWNLOAD_TOKEN} "https://api.bitbucket.org/2.0/repositories/你的工作区/库仓库名/downloads/platform2-${BITBUCKET_BRANCH}-latest.zip" -o lib_bin.zip
              # 解压到目标路径
              - unzip lib_bin.zip -d NET5/Platform2/bin
              # 原有构建逻辑
              - export PROJECT_NAME=./PlatformDataService.sln
              - dotnet restore ${PROJECT_NAME}
              - dotnet build ${PROJECT_NAME} --no-restore --configuration Release
            artifacts:
              - PlatformDataService/bin/**

提示:你需要调整库仓库的上传逻辑,将产物打包为按分支命名的zip包上传,方便下游应用拉取对应版本

方案二:基于Bitbucket内置Nuget源实现(更适配.NET技术栈)

Bitbucket Cloud本身支持托管私有Nuget包,无需自建服务器,是更规范的.NET类库共享方案:

  • 在库仓库中生成带访问权限的推送令牌,存入Pipelines保密变量
  • 调整库的构建脚本,增加打包、推送Nuget包的逻辑:
script:
  - dotnet restore ./NET5/Platform2.sln
  - dotnet build ./NET5/Platform2.sln --no-restore --configuration Release
  # 打包生成Nuget包,版本号用构建号自动生成
  - dotnet pack ./NET5/Platform2.sln --no-restore --configuration Release --output ./nupkg -p:PackageVersion=1.0.${BITBUCKET_BUILD_NUMBER}
  # 推送到Bitbucket私有Nuget源,替换占位符为你的实际工作区、仓库名
  - dotnet nuget push ./nupkg/*.nupkg --source "https://api.bitbucket.org/2.0/repositories/你的工作区/库仓库名/nuget/packages" --api-key ${LIB_PUSH_TOKEN}
  • 应用仓库只需在Nuget配置中添加该私有源,构建restore环节会自动拉取对应版本的类库,无需手动管理路径。

关于工作路径的说明

Bitbucket Pipelines支持完全自定义工作目录结构,你可以在脚本中通过mkdir、mv、git clone等命令任意调整目录层级,完全可以复现你之前在Jenkins、Bamboo上使用的标准化相对路径规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:39:01