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

如何在Bitbucket中重用先前流水线生成的制品?

如何在Bitbucket Pipelines中重用先前流水线生成的制品

Bitbucket Pipelines默认的artifacts配置确实只能在同一流水线的不同步骤间复用,要跨流水线(比如之前某次运行生成的制品)重用,得用官方的**工件存储(Artifact Storage)**功能,下面给你一步步讲怎么实现:

一、先开启仓库的工件存储

首先去你的Bitbucket仓库设置里,找到Pipelines > Artifact Storage,把这个功能打开——这是跨流水线复用制品的前提。

二、修改生成制品的流水线配置

你现在的构建步骤已经生成了docker_containers.tar,接下来要把这个文件上传到工件存储里。我们可以用Atlassian官方的artifact-upload管道来做,修改后的配置如下:

image: php:7.2.18
pipelines:
  branches:
    delete-me:
      - step:
          name: Build docker containers
          services:
            - docker
          script:
            - docker/build_containers_if_not_exists.sh
            - sleep 30 # wait for docker to start all containers
            - docker save $(docker images -q) -o ${BITBUCKET_CLONE_DIR}/docker_containers.tar
            # 把制品上传到工件存储,用分支名+构建号命名,方便后续识别
            - pipe: atlassian/artifact-upload:0.6.0
              variables:
                ARTIFACT_PATH: 'docker_containers.tar'
                ARTIFACT_NAME: 'docker-containers-${BITBUCKET_BRANCH}-${BITBUCKET_BUILD_NUMBER}'
                BITBUCKET_USERNAME: $BITBUCKET_USERNAME
                BITBUCKET_APP_PASSWORD: $BITBUCKET_APP_PASSWORD
      - step:
          name: Compile styles & js
          caches:
            - composer
          script:
            - docker load --input docker_containers.tar
            - docker-compose up -d
            - composer install

三、在后续流水线中下载重用制品

当你需要在其他流水线(比如另一个分支的运行,或者同一个分支的新构建)里使用之前生成的制品时,用artifact-download管道把它拉下来就行。比如你想在main分支重用delete-me分支第123次构建的制品,配置可以这么写:

pipelines:
  branches:
    main:
      - step:
          name: Download previous docker containers
          script:
            # 替换ARTIFACT_NAME为你要重用的那个制品的名称(就是上传时指定的名字)
            - pipe: atlassian/artifact-download:0.6.0
              variables:
                ARTIFACT_NAME: 'docker-containers-delete-me-123'
                BITBUCKET_USERNAME: $BITBUCKET_USERNAME
                BITBUCKET_APP_PASSWORD: $BITBUCKET_APP_PASSWORD
            # 下载完成后就可以正常使用这个tar包了
            - docker load --input docker_containers.tar
            - docker-compose up -d
            # ... 这里加你后续的步骤

关键注意事项

  • Bitbucket App Password:你需要在个人设置里创建一个App Password,权限要包含Repositories > Read和Repositories > Write,然后把这个密码和你的用户名存在仓库的环境变量里(仓库设置 -> Repository variables),这样流水线才能有权限上传下载制品。
  • 制品命名:建议用分支名+构建号的格式命名制品,这样你能清楚知道要下载的是哪一次构建的产物,避免混淆。
  • 存储容量:工件存储有容量限制,根据你的Bitbucket订阅计划不同而不同,记得定期清理没用的旧制品哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:59:35