scikit-ci 0.21.0
scikit-ci enables a centralized and simpler CI configuration for Python extensions.
License: Apache
Keywords: CI Appveyor CircleCI Travis

=========
scikit-ci
=========

scikit-ci enables a centralized and simpler CI configuration for Python
extensions.

By having ``appveyor.yml``, ``azure-pipelines.yml``, ``circle.yml`` and ``.travis.yml`` calling
the same scikit-ci command-line executable, all the CI steps for all
service can be fully described in one ``scikit-ci.yml`` configuration file.

Latest Release
--------------

.. table::

  +--------------------------------------------------------------------------+----------------------------------------------------------------------------+
  | Versions                                                                 | Downloads                                                                  |
  +==========================================================================+============================================================================+
  | .. image:: https://img.shields.io/pypi/v/scikit-ci.svg?maxAge=2592000    | .. image:: https://img.shields.io/badge/downloads-72k%20total-green.svg    |
  |     :target: https://pypi.python.org/pypi/scikit-ci                      |     :target: https://pypi.python.org/pypi/scikit-ci                        |
  +--------------------------------------------------------------------------+----------------------------------------------------------------------------+

Build Status
------------

.. table::

  +---------------+--------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
  |               | Linux                                                                                | macOS                                                                                | Windows                                                                                    |
  +===============+======================================================================================+======================================================================================+============================================================================================+
  | PyPI          | .. image:: https://circleci.com/gh/scikit-build/scikit-ci.svg?style=shield           | .. image:: https://img.shields.io/travis/scikit-build/scikit-ci.svg?maxAge=2592000   | .. image:: https://ci.appveyor.com/api/projects/status/5to6lvgaqcrck675?svg=true           |
  |               |     :target: https://circleci.com/gh/scikit-build/scikit-ci                          |     :target: https://travis-ci.org/scikit-build/scikit-ci                            |    :target: https://ci.appveyor.com/project/scikit-build/scikit-ci/branch/master           |
  +---------------+--------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+

Overall Health
--------------

.. image:: https://readthedocs.org/projects/scikit-ci/badge/?version=latest
    :target: http://scikit-ci.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation Status

.. image:: https://codecov.io/gh/scikit-build/scikit-ci/branch/master/graph/badge.svg
    :target: https://codecov.io/gh/scikit-build/scikit-ci

Miscellaneous
-------------

* Free software: Apache Software license
* Documentation: http://scikit-ci.readthedocs.org
* Source code: https://github.com/scikit-build/scikit-ci
* Mailing list: https://groups.google.com/forum/#!forum/scikit-build




History
-------

scikit-ci was initially developed in May 2016 by Omar Padron to facilitate the
continuous integration of the scikit-build project.

At that time, it already consisted of a driver script calling methods specific
to each continuous integration service. By having each CI service calling the
same driver script, there was no need to deal with implementing install/test/build
steps over and over in different scripting languages (power shell, shell or
windows batch). Instead all code was implemented in python code leveraging the
subprocess module.

Later in early September 2016, with the desire to setup cross-platform continuous
integration for other project and avoid duplication or maintenance hell, a
dedicated repository was created by Jean-Christophe Fillion-Robin. By simply
cloning the repository, it was possible to more easily enable CI for other projects.

While this was an improvement, all the steps were still hardcoded in the driver
scripts, the project was not easily customizable. More could be done to improve
the user experience.

Finally, in late September 2016, all hardcoded code was moved into standalone
executable python scripts. Then, Jean-Christophe came up with the concept of
scikit-ci.yml configuration file. This configuration file allows to describe the
commands and environment for each step (install, test and build) specific to a
project and associated continuous integration services.