Continuous Integration

Warning

This component is not activated by default.

Why do we need it?

The continuous integrations component is there to enable a continuous testing and integration in your workflow.

The idea is that: If you can use any of the supported Continuous Integration engine, use it, and use PyFunceble to work along your workflow.

How does it work?

Note

Want to read the code ? It’s here ContinuousIntegrationBase!

After a given amount of minutes, we stop the tool, generate the percentage, run a given command (if found), commit all the changes we made to the repository and finally, push to the git repository.

How to use it?

As of today, PyFunceble should work under Travis CI and GitLab CI.

Warning

Along with the configuration file or the CLI setting, you are required to give the following environment variables:

  • GIT_EMAIL: The email to use for the commit.

  • GIT_NAME: The name to use for the commit.

  • GH_TOKEN: The GitHub token if you use Travis CI.

  • GL_TOKEN: The GitLab token if you use GitLab CI.

The following from the configuration (or their equivalent from the CLI) are available for usage.

cli_testing:
    ci:
        # Provides everything related to the continuous integration.

        # Activates the continuous integration mode.
        # WARNING: Do not activate without asking or knowing what you are doing.
        active: False

        # Sets the commit message to apply each time except for the last one.
        commit_message: "PyFunceble - AutoSave"

        # Sets the commit message to apply at the very end of the test.
        end_commit_message: "PyFunceble - Results"

        # Sets the number of minutes  to wait before sftarting to save and stop
        # a session.
        max_exec_minutes: 15

        # Sets the working branch. This is the branch from where we are testing.
        branch: master

        # Sets the distribution branch. This is the branch that is going to get
        # the (final) results.
        distribution_branch: master

        # Sets the command to execute before each commits except the last
        # one.
        command: null

        # Sets the command to execute before the last commit.
        end_command: null