Search code examples
python-2.7circlecipyflakesflake8

How to run the flake8 in circle.yml


I am getting the following error when building circle ci server.

bash: line 1: flake8: command not found flake8 app/ returned exit code 127

Solution

  • you can add flake8 in your requirements.txt and add flake8 command as one of the steps in your circleci config. for the start you can use the circleci boilerplate code, so the end result will be something like this.

    # Python CircleCI 2.0 configuration file
    #
    # Check https://circleci.com/docs/2.0/language-python/ for more details
    #
    version: 2
    jobs:
      build:
        docker:
          # specify the version you desire here
          # use `-browsers` prefix for selenium tests, e.g. `3.6.1-browsers`
          - image: circleci/python:3.5.3
    
          # Specify service dependencies here if necessary
          # CircleCI maintains a library of pre-built images
          # documented at https://circleci.com/docs/2.0/circleci-images/
          # - image: circleci/postgres:9.4
        working_directory: ~/repo
        steps:
          - checkout
          # Download and cache dependencies
          - restore_cache:
              keys:
              - v1-dependencies-{{ checksum "requirements.txt" }}
              # fallback to using the latest cache if no exact match is found
              - v1-dependencies-
          - run:
              name: install dependencies
              command: |
                python3 -m venv venv
                . venv/bin/activate
                pip install -r requirements.txt
          - save_cache:
              paths:
                - ./venv
              key: v1-dependencies-{{ checksum "requirements.txt" }}
    
          # run tests!
          - run:
              name: run linting and metrics
              command: |
                . venv/bin/activate
                flake8 ./ tests --output-file test-reports
          - store_artifacts:
              path: test-reports
              destination: test-reports