version: 2
filters:
  branches:
    only: master
jobs:
  build:
    working_directory: ~/rocky/python-uncompyle6
    parallelism: 1
    shell: /bin/bash --login
    # CircleCI 2.0 does not support environment variables that refer to each other the same way as 1.0 did.
    # If any of these refer to each other, rewrite them so that they don't or see https://circleci.com/docs/2.0/env-vars/#interpolating-environment-variables-to-set-other-environment-variables .
    environment:
      CIRCLE_ARTIFACTS: /tmp/circleci-artifacts
      CIRCLE_TEST_REPORTS: /tmp/circleci-test-results
      COMPILE: --compile
    # To see the list of pre-built images that CircleCI provides for most common languages see
    # https://circleci.com/docs/2.0/circleci-images/
    docker:
      - image: circleci/python:3.8
    steps:
      # Machine Setup
      #   If you break your build into multiple jobs with workflows, you will probably want to do the parts of this that are relevant in each
      # The following `checkout` command checks out your code to your working directory. In 1.0 we did this implicitly. In 2.0 you can choose where in the course of a job your code should be checked out.
      - checkout
      # Prepare for artifact and test results  collection equivalent to how it was done on 1.0.
      # In many cases you can simplify this from what is generated here.
      # 'See docs on artifact collection here https://circleci.com/docs/2.0/artifacts/'
      - run: mkdir -p $CIRCLE_ARTIFACTS $CIRCLE_TEST_REPORTS
      # This is based on your 1.0 configuration file or project settings
      - run:
          working_directory: ~/rocky/python-uncompyle6
          command: pip install --user virtualenv && pip install --user nose && pip install
            --user pep8
      # Dependencies
      #   This would typically go in either a build or a build-and-test job when using workflows
      # Restore the dependency cache
      - restore_cache:
          keys:
            - v2-dependencies-{{ .Branch }}-
            # fallback to using the latest cache if no exact match is found
            - v2-dependencies-

      - run:
          command: | # Use pip to install dependengcies
            sudo pip install --user --upgrade setuptools
            # Until the next release
            sudo pip install git+https://github.com/rocky/python-xdis#egg=xdis
            pip install --user -e .
            pip install --user -r requirements-dev.txt

      # Save dependency cache
      - save_cache:
          key: v2-dependencies-{{ .Branch }}-{{ epoch }}
          paths:
            # This is a broad list of cache paths to include many possible development environments
            # You can probably delete some of these entries
            - vendor/bundle
            - ~/virtualenvs
            - ~/.m2
            - ~/.ivy2
            - ~/.bundle
            - ~/.cache/bower

      # Test
      #   This would typically be a build job when using workflows, possibly combined with build
      # This is based on your 1.0 configuration file or project settings
      - run: sudo python ./setup.py develop && make check-3.6
      - run: cd ./test/stdlib && bash ./runtests.sh 'test_[p-z]*.py'
      # Teardown
      #   If you break your build into multiple jobs with workflows, you will probably want to do the parts of this that are relevant in each
      # Save test results
      - store_test_results:
          path: /tmp/circleci-test-results
      # Save artifacts
      - store_artifacts:
          path: /tmp/circleci-artifacts
      - store_artifacts:
          path: /tmp/circleci-test-results
    # The resource_class feature allows configuring CPU and RAM resources for each job. Different resource classes are available for different executors. https://circleci.com/docs/2.0/configuration-reference/#resourceclass
    resource_class: large
