Search code examples
circleci-2.0circleci-workflows

circleci filter branch is not working


I am very new in circleci and I was trying to limit my build to work only on a specific branch, I tried the below config file but when I include the filters section I get the following error:

Your config file has errors and may not run correctly:
2 schema violations found
  required key [jobs] not found
  required key [version] not found

config with filters:

version: 2
jobs:
  provisioning_spark_installation_script:
    working_directory: ~/build_data
    docker:
      - image: circleci/python:3.6.6-stretch
    steps:
      - setup_remote_docker:
          docker_layer_caching: true
      - checkout
      - run: &install_awscli
               name: Install AWS CLI
               command: |
                 sudo pip3 install --upgrade awscli
      - run: &login_to_ecr
               name: Login to ECR
               command: aws ecr get-login --region us-east-1 | sed 's/-e none//g' | bash
workflows:
  version: 2
  deployments:
    jobs:
      - provisioning_spark_installation_script
        filters:
          branches:
            only: master

When I remove the filters section, everything is working fine - but without filters, I know how to workaround using shell and if else but it is less elegant.

Any advice ?


Solution

  • I was just missing colon character after the workflow name, in addition of more indentation for filters.

    So now I have the following config:

    version: 2
    jobs:
      provisioning_spark_installation_script:
        working_directory: ~/build_data
        docker:
          - image: circleci/python:3.6.6-stretch
        steps:
          - setup_remote_docker:
              docker_layer_caching: true
          - checkout
          - run: &install_awscli
                   name: Install AWS CLI
                   command: |
                     sudo pip3 install --upgrade awscli
          - run: &login_to_ecr
                   name: Login to ECR
                   command: aws ecr get-login --region us-east-1 | sed 's/-e none//g' | bash
    workflows:
      version: 2
      deployments:
        jobs:
          - provisioning_spark_installation_script:
              filters:
                branches:
                  only: master