如何在位桶管道中的步骤之间使用图像

How to use the image between steps in bitbucket-pipelines

如果有人可以帮助我为我的 php 环境设置 bitbucket-pipeline,我将不胜感激。我想要成功的是:

  1. 第一步构建镜像
  2. 在第二步中 运行 一些 QA 东西,如单元测试、代码嗅探器等
  3. 部署到预生产环境

目前我一直在重复使用第一步中的图像。这就是我的 bitbucket-pipelines.yml 的样子:

pipelines:
  branches:
    develop:
      - step:
          name: Build docker image
          caches:
            - composer
          script:
            - apt-get update && apt-get install -y unzip
            - docker-php-ext-install mysqli pdo_mysql json sockets
            - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
            - composer install
      - parallel:
          - step:
              caches:
                - composer
              name: Unit tests
              script:
                - vendor/bin/phpunit
          - step:
              caches:
                - composer
              name: Code sniffer
              script:
                - composer phpcs:all
      - step:
          name: Deploy to preprod
          script:
            - echo "Deployment"

我得到的是: bash: vendor/bin/phpunit: No such file or directory - 来自“单元测试”步骤 和 bash: composer: command not found - 来自“代码嗅探器”步骤

我已经试过设置docker/composer缓存,第一步保存图片,第二步导入,但还是不行。

在不同步骤之间共享内容的一种方法是使用 Artifacts

基本上,bitbucket 在单独的 docker 容器中旋转每个步骤。因此,在步骤之间 re-use material 的一种方法是创建工件。 link 应该会给你足够的信息。

例如:

- step: &build
    caches:
      - node
    name: Build
    script:
      - npm install
      - npm run build
    artifacts: # defining the artifacts to be passed to each future step.
      - dist/**

- step: &read-from-artifact
    name: Read from the artifact saved in the previous step
    script:
      - echo "Read artifact (dist folder) saved in previous step"
      - ls -la dist/