Задания не выполняются в рабочем цикле круга - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь каскадировать серию задач, используя синтаксис рабочего процесса с кружком ci. По какой-то причине кажется, что выполняется только задание на сборку, а другие мои задания - нет.

version: 2
jobs:
build:
docker:
  - image: circleci/node:latest
steps:
    - checkout
    - restore_cache:
        keys:
            - sfdx-version-41-local
    - run:
        name: Install SFDX
        command: pwd
    - save_cache:
        key: sfdx-version-41-local
        paths:
            - node_modules
auth:   
    steps:
    - run:
        name: Authenticate
        command: ls -a
validate:
    steps:
    - run:
        name: Validate
        command:  mkdir whocares
clean:
    steps:
    - run:
        name: Remove Server Key
        when: always
        command: pwd

workflows:
 version: 2
 authenticate-and-deploy:
   jobs:
     - build
     - auth
     - validate
     - clean

В идеале я хочу убедиться, что каждый шаг заканчивается ненулевым кодом выхода, прежде чем переходить к следующему шагу. Но я не уверен, что последующие шаги после сборки не выполняются.

Спасибо

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

        Here is what I ended up doing:


    job-definition: &jobdef
    docker:
        - image: circleci/openjdk:latest-node-browsers
    steps:
        - checkout
        - restore_cache:
            keys:
                - sfdx-6.8.2-local
        - run: 
            name: Print branch
            command: |
                echo $CIRCLE_BRANCH
                if [[$CIRCLE_BRANCH == 'master']]; 
                    then
                        echo "master"; 
                    else 
                        echo "notMaster"; 
                fi

        - save_cache:
            key: sfdx-6.8.2-local
            paths: 
                - node_modules
        - run:
            name: "Validate Build"
            command: |
                #node_modules/sfdx-cli/bin/run force:mdapi:deploy -d src/ -u $USERNAME -c --testlevel RunLocalTests
                echo CIRCLE_BRANCH
        - run: 
            name: Push to Codecov.io
            command: |
                cp ~/tests/apex/test-result-codecoverage.json .
                bash <(curl -s https://codecov.io/bash)
        - store_artifacts:
            path: ~/tests
        - store_test_results:
            path: ~/tests

    version: 2
jobs:
  static-analysis:
    docker:
      - image: circleci/openjdk:latest
    steps:
      - checkout
      - restore_cache:
          keys: 
            - pmd-v6.0.1
      - run:
          name: Install PMD
          command: |
              if [ ! -d pmd-bin-6.0.1 ]; then
                  curl -L "https://github.com/pmd/pmd/releases/download/pmd_releases/6.0.1/pmd-bin-6.0.1.zip" -o pmd-bin-6.0.1.zip
                  unzip pmd-bin-6.0.1.zip
                  rm pmd-bin-6.0.1.zip
              fi
      - save_cache:
          key: pmd-v6.0.1
          paths: 
              - pmd-bin-6.0.1
      - run: 
          name: Run Static Analysis
          command: |
              pmd-bin-6.0.1/bin/run.sh pmd -d ./src/ -R $RULESET -f text -l apex -r static-analysis.txt -no-cache
      - store_artifacts:
          path: static-analysis.txt
  build-enterprise:
     <<: *jobdef
     environment:
        SCRATCH_DEF: workspace-scratch-def.json
        URL: https://login.salesforce.com
        NAME: $PROD_USERNAME
  build-developer: 
     <<: *jobdef
     environment:
        SCRATCH_DEF: developer.json
        URL: https://test.salesforce.com
        NAME: $EVANDEV_USERNAME
              workflows:
  version: 2
  test_and_static:
    jobs:
      - build-enterprise
      #- build-developer
      #- static-analysis

Две другие вещи, которые я пытаюсь сделать: 1. параметризировать сборку 2. запустить сборку на PR

0 голосов
/ 02 мая 2018

Если по каким-то причинам вам действительно нужны все эти задания, в конфигурации Workflows отсутствуют требования, а в каждом задании отсутствует исполнитель. Я также исправил отступ. Вы можете сделать это:

version: 2
jobs:
  build:
    docker:
      - image: circleci/node:latest
    steps:
      - checkout
      - restore_cache:
          keys:
            - sfdx-version-41-local
      - run:
          name: Install SFDX
          command: pwd
      - save_cache:
          key: sfdx-version-41-local
          paths:
            - node_modules
  auth:
    docker:
      - image: circleci/node:latest
    steps:
      - run:
          name: Authenticate
          command: ls -a
  validate:
    docker:
      - image: circleci/node:latest
    steps:
      - run:
          name: Validate
          command:  mkdir whocares
  clean:
    docker:
      - image: circleci/node:latest
    steps:
      - run:
          name: Remove Server Key
          when: always
          command: pwd

workflows:
  version: 2
  authenticate-and-deploy:
    jobs:
      - build
      - auth:
          requires: build
      - validate:
          requires: auth
      - clean:
          requires: validate
...