Parallel processing 我是否可以循环浏览筛选值列表,并在Circle CI中使用每个筛选值启动作业?

Parallel processing 我是否可以循环浏览筛选值列表,并在Circle CI中使用每个筛选值启动作业?,parallel-processing,circleci,Parallel Processing,Circleci,类似于但适用于CircleCI而非Jenkins 我有一个工作圈。我的工作之一是运行测试。它接受一个名为filter的参数,该参数被传递给实际运行测试的命令(jest) 这很好用。但是这里有很多重复 是否有一种方法可以循环浏览筛选值列表,并使用每个值运行作业?您需要的是一个矩阵。下面是一个片段: 工作流: 主要内容: 工作: -测试: 矩阵: 参数: 过滤器: -“--testPathPattern='feedArea.test'” -“--testPathPattern='blackListA

类似于但适用于CircleCI而非Jenkins

我有一个工作圈。我的工作之一是运行测试。它接受一个名为
filter
的参数,该参数被传递给实际运行测试的命令(
jest

这很好用。但是这里有很多重复


是否有一种方法可以循环浏览筛选值列表,并使用每个值运行作业?

您需要的是一个矩阵。下面是一个片段:

工作流:
主要内容:
工作:
-测试:
矩阵:
参数:
过滤器:
-“--testPathPattern='feedArea.test'”
-“--testPathPattern='blackListArea.test'”
-“--testPathPattern='projectsAreaV2.test'”
以下是文件:

  run tests:
    description: Run backend tests
    # https://circleci.com/docs/reference-2-1/#docker
    parameters:
      filter:
        description: "Test filter for jest"
        default: ""
        type: string
    executor: full-backend

    steps:
      - attach_workspace:
          at: /home/circleci/project

      - run:
          # Note the 'circle_test' DB is already created on the DB image
          name: Run DB migration
          command: |
            cd /home/circleci/project; set -o allexport; cp .env.circleci .env; source .env
            npm run typeorm -- migration:run

      - run:
          name: Run tests
          # 30GB of 32GB total per resource_class above
          command: |
            cd /home/circleci/project; set -o allexport; cp .env.circleci .env; source .env
            node --max_old_space_size=30720 ./node_modules/.bin/jest --passWithNoTests --runInBand --logHeapUsage << parameters.filter >>
      - run tests:
          requires:
            - install npm packages
          name: Test feedArea
          filter: --testPathPattern='feedArea.test'

      - run tests:
          requires:
            - install npm packages
          name: Test blackListArea
          filter: --testPathPattern='blackListArea.test'

      - run tests:
          requires:
            - install npm packages
          name: Test projectsAreaV2
          filter: --testPathPattern='projectsAreaV2.test'

      (and so on)