CircleCI 在步数后并行开始 运行 步

CircleCI start running steps in parallel after number of steps

我有一个 config.yaml 用于我的 CirleCI 工作流程。

我使用 PHPUnit 来 运行 我的测试,但我想开始 运行 使用 Circle 并行执行这些测试以加快部署过程。

所以 BuildJob 看起来像这样:

jobs:
  #  build-job
  build-job:
    <<: *defaults  
    resource_class: large
    steps:
      - checkout
      - run: sudo apt install -y libsqlite3-dev zlib1g-dev libpng-dev libxml2-dev
      - run: sudo docker-php-ext-install zip
      - run: sudo docker-php-ext-install gd
      - run: sudo docker-php-ext-install soap
      - run: sudo docker-php-ext-install bcmath
      - run: sudo composer self-update
      - restore_cache:
          keys:
            - composer-v1-{{ checksum "composer.lock" }}
            - composer-v1-
      - run: composer install -n --prefer-dist
      - save_cache:
          key: composer-v1-{{ checksum "composer.lock" }}
          paths:
            - vendor
      - restore_cache:
          keys:
            - node-v1-{{ checksum "package.json" }}
            - node-v1-
      - run: 
          name: Create sqlite db
          command: touch database/database.sqlite
      - run: 
          name: Run tests
          command: ./vendor/bin/phpunit -d memory_limit=512M
      - persist_to_workspace:
          root: ~/laravel
          paths: .

所以我知道我需要在并行 运行 的步骤之前将 parallelism: 4 添加到那里,如记录 here 但我需要最多 [=15= 的步骤] 为了。然后我将有多个 运行 测试步骤来命中每个测试文件夹。

有没有办法实现这个?

根据此讨论 (https://discuss.circleci.com/t/how-to-execute-phpunit-tests-in-parallel/25622),使用 CircleCI CLI 命令 circleci tests split 为并行容器拆分测试的常用方法不适用于 phpunit。但是,正如@matfax 所说,您可以 运行 几个逻辑组中的测试吗?像

./vendor/bin/phpunit tests/ThisGroup
./vendor/bin/phpunit tests/ThatGroup

如果是这样,那么您可以 运行 在 CircleCI 工作流中并行作业中的每个命令。