Devops =========== Azure Pipeline -------------- ``blocklib`` is automatically built and tested using Azure Pipeline as part of the `Anonlink `_ project. The continuous integration pipeline is `here `_, and the release pipeline is `here `_ Build Pipeline ~~~~~~~~~~~~~~ The build pipeline is defined in the script ``azure-pipelines.yml``. There are three top level stages in the build pipeline: - *Static Checks* - run typechecking with mypy. - *Test and build* - tests the library using ``pytest`` with different versions of ``Python``. - *Build Wheel Packages* - packages blocklib into wheels and saves the build artifacts. The *Test and build* job does: - install the requirements, - run tests on Ubuntu 18.04 OS, for ``Python 3.6``, ``Python 3.7``, ``Python 3.8`` and ``Python 3.9`` - publish the test results, - publish the code coverage, - package and publish the artifacts. Release Pipeline ~~~~~~~~~~~~~~~~ The release pipeline publishes the built wheels and source code to `PyPi `_ as ``blocklib``. .. Note:: The release pipeline requires manual intervention by a Data61 team member.