【问题标题】:How do you configure a sequential workflow on CircleCI 2.0?如何在 CircleCI 2.0 上配置顺序工作流?
【发布时间】:2018-02-28 20:37:53
【问题描述】:

我已将 config.yml 文件添加到 .circleci/ 目录中的 react-native 项目中,以配置构建管道。

但在我的 CircleCI 2.0 服务器中,只有第一个作业,build 运行,而 testandroid 不运行,尽管它们是整个工作流配置的一部分。

我已按照https://circleci.com/docs/2.0/workflows/ 此处的工作流配置指南配置顺序工作流。

我确实验证了我的 CI 服务器正在使用下面的配置

问题:

如何在 CircleCI 2.0 上配置顺序工作流?

repo 中的 config.yml 文件:

# Javascript Node CircleCI 2.0 configuration file
    #
    # Check https://circleci.com/docs/2.0/language-javascript/ for more details
    #
    version: 2
    machine:
      environment:
        PATH: "${PATH}:${HOME}/${CIRCLE_PROJECT_REPONAME}/node_modules/.bin"

    dependencies:
      override:
        - yarn
        - jest
      cache_directories:
        - ~/.cache/yarn
        - ~/.cache/jest

    build:
      override:
        - yarn install



    jobs:
       build:
        working_directory: ~/repo
        docker:
          - image: circleci/node:8
        steps:
          - checkout
          - run: yarn install
          - persist_to_workspace:
              root: ~/repo
              paths:
                - node_modules  
        test:
          working_directory: ~/repo
          docker:
            - image: circleci/node:8.9.0
          steps:
            - checkout
            - run: yarn install
            - run: npm test
            - persist_to_workspace:
                root: ~/repo
                paths:
                  - node_modules         
        android:
          working_directory: ~/repo/android
          docker:
            - image: circleci/android:api-27-node8-alpha
          steps:
            - checkout:
                path: ~/repo
            - attach_workspace:
                at: ~/repo
            - run: bundle install
            #- run: bundle exec fastlane test
            - store_test_results:
              path: ~/root/android/reports


    workflows:
      version: 2
      node-android:
        jobs:
          - build:
              filters:
                tags:
                  ignore: /^testing
          - test   
              requires:
                - test
          - android:
              requires:
                - test
                - build

【问题讨论】:

  • 首先查看此文档 (circleci.com/docs/2.0/configuration-reference)。此配置文件结合了 CircleCI 1.0 和 2.0 语法。您想删除所有 1.0 语法,这是靠近顶部的依赖部分。
  • @FelicianoTech 我来看看,我最初添加了依赖部分,因为 yarn install 命令不起作用并且默认为 npm install
  • @FelicianoTech 我运行了工作流程,但确实注意到在 android 作业中找不到 env var 的问题,如果您对此有任何提示吗? stackoverflow.com/questions/49163104/…

标签: react-native continuous-integration circleci


【解决方案1】:

我通过删除 CI 1.0 语法作为@FelicianoTech mentioend 修复了工作流程,这段 YAML 不是 2.0 CircleCI 语法:

machine:
      environment:
        PATH: "${PATH}:${HOME}/${CIRCLE_PROJECT_REPONAME}/node_modules/.bin"

    dependencies:
      override:
        - yarn
        - jest
      cache_directories:
        - ~/.cache/yarn
        - ~/.cache/jest

    build:
      override:
        - yarn install

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 2018-10-16
    • 2018-09-14
    • 2018-04-14
    • 1970-01-01
    相关资源
    最近更新 更多