GitLab CI/CD
PyFunceble can be used within a GitLab CI/CD runner. The idea is to run PyFunceble within a runner and let PyFunceble push the result into a Git Repository.
Environment Variables
| Environment Variable | Description | 
|---|---|
| GITLAB_CI / GITLAB_USER_ID | The variables PyFunceble will look for to decide which CI "engine" to use. BEWARE: If you use this variable to test locally, your configurations may get messy. Please test within an isolated environment. | 
| PYFUNCEBLE_AUTO_CONFIGURATION | Let PyFunceble manage the configuration files. | 
| PYFUNCEBLE_CONFIG_DIR | Let PyFunceble know where it should store its configuration files. | 
| GL_TOKEN | The token PyFunceble has to use to push changes to the repository. | 
| GIT_NAME | The git.nameto setup and use. | 
| GIT_EMAIL | The git.emailto setup and use. | 
| GIT_BRANCH | The Git branch to use to store testing results between serveral sessions. | 
| GIT_DISTRIBUTION_BRANCH | The Git branch to use to store and distribute the final results. | 
Configuration: Personal Access Token
A personal access token is needed in order for PyFunceble to automatically push the results.
You should get a personal GitLab access token with the read_repository and write_repository scopes.
Once created and copied in a safe place, create a new masked variable called GL_TOKEN inside the CI/CD settings of your project. The value of the variable should be the newly generated personal access token.
Example
Here is an example that demonstrate how to use PyFunceble within a GitLab CI/CD Runner.
Warning
This example won't push result until you define the GL_TOKEN secret environment variable.
.travis.yml
  
    
  
  
    
  
  
                
              # Python needed, so we use the python image.
image: python:latest
variables:
  # Let PyFunceble know that it has to manage the configuration by itself.
  PYFUNCEBLE_AUTO_CONFIGURATION: "YES"
  # This is the Git name we have to set. (git config user.name)
  GIT_EMAIL: "foobar@example.org"
  # This is the Git Email we have to set. (git config user.email)
  GIT_NAME: "PyFunceble @ GitLab CI/CD"
  # Define the branch PyFunceble has to use while working.
  GIT_BRANCH: my-awesome-branch
  # Define the branch PyFunceble will push the final result into.
  GIT_DISTRIBUTION_BRANCH: my-awesome-branch
  # Define the path of the configuration directory.
  PYFUNCEBLE_CONFIG_DIR: "${CI_PROJECT_DIR}/.pyfunceble"
before_script:
  - pip3 install pyfunceble-dev
run:
  script:
    - pyfunceble --version
    # Warning: this assume that the test.list file is at the root of the
    # repository.
    - pyfunceble -a --ci --logging-level critical -f test.list