Continuous integration

Currently, we have implemented a Continuous Integration methodology in a Jenkins or Travis instance. It executes the following scripts in the following order:

  1. Scripts to check the correctness of the code convenstions and the documentation generation:

    1. ./dev_tools/ci/code_conventions_001_pycodestyle.sh

    2. ./dev_tools/ci/code_conventions_002_pylint.sh

    3. ./dev_tools/ci/code_conventions_003_documentation.sh

  2. Scripts to tests the functionality of Microprobe:

    1. ./dev_tools/ci/test_001_end2end_tools.sh

    2. ./dev_tools/ci/test_002_end2end_examples.sh

    3. ./dev_tools/ci/test_003_end2end_targets.sh

    4. ./dev_tools/ci/test_004_unittest.sh

  3. Scripts to test the build of the pip distribution:

    1. ./dev_tools/ci/build_001_distribution.sh

  4. Scripts to test the built pip distribution is correct:

    1. ./dev_tools/ci/test_deploy_001_install.sh

  5. Scripts to deploy the new built distribution on public repositories (PyPI & GitHub).

    1. ./dev_tools/ci/deploy_001.sh

Check the aforementioned scripts plus the Jenkinsfile/ or .travis.yml file to understand all the details of the process implemented. You can execute all these scripts locally (except the last one –the deployment–) to validate the correctness of your code before creating a patch or a pull requests in GitHub. We provide a script to do so:

> ./dev_tools/ci/check_ci.sh