Skip to content

# Environment Variables

PyFunceble provides some environment variables to control some of its internal states or logic before it actually loads any configuration files.

In this page you will find all environment variables grouped by "features".

## Configuration Management

Environment Variable | Description
--- | ---
PYFUNCEBLE_CONFIG_DIR | If set, PyFunceble will assume its value as the location of the configuration files.
PYFUNCEBLE_AUTO_CONFIGURATION | If defined with any value, PyFunceble will accept upstream configuration changes.

## Output Management

Environment Variable | Description
--- | ---
PYFUNCEBLE_OUTPUT_LOCATION | Defines the folder where PyFunceble will generate the `output/` folder and datasets.

## Git / CI Management

Environment Variable | Description
--- | ---
GIT_NAME | Defines the `git.name` to setup and use.
GIT_EMAIL | Defines the `git.email` to setup and use.
GIT_BRANCH | Defines the branch to use to store results between multiple CI/CD sessions. WARNING: This doesn't apply to the final results
GIT_DISTRIBUTION_BRANCH | Defines the branch to use to distribute the final results of multiple CI/CD sessions.
GITHUB_TOKEN | Under a GitHub Action worker or Jenkins CI worker, defines the token to use to authenticate ourselves against the GitHub infrastructure.
GL_TOKEN | Under a GitLab CI/CD runner, defines the token to use to authenticate ourselves against the GitLab infrastructure.
GH_TOKEN | Under a Travis CI instance, defines the token to use to authenticate ourselves against the GitHub infrastructure.
PYFUNCEBLE_BYPASS_BYPASS | If set, PyFunceble will skip the bypass logic. Meaning that if a commit match the defined markers (cf: [ci skip], and others), the bypass logic will be skipped - if this variable is defined.

## Database Management

The environment variables listed below are used to share your database credentials with PyFunceble.

Environment Variable | Description
--- | ---
PYFUNCEBLE_DB_CHARSET | The charset PyFunceble has to use while writing into the database.
PYFUNCEBLE_DB_HOST | The location of the database. It can be an IP, hostname or an absolute path of a unix socket file.
PYFUNCEBLE_DB_PORT | When `PYFUNCEBLE_DB_HOST` is not a socket file, the port to reach the database through
PYFUNCEBLE_DB_USERNAME | The username to use to authenticate ourselves.
PYFUNCEBLE_DB_PASSWORD | The password to use to authenticate ourselves.
PYFUNCEBLE_DB_NAME | The name of the database to work with.

## Debugging

The environment variables listed below can be used to control the extended outputs of PyFunceble.

Beware!!!

Using the debug mode will help you understand what's going one under the hood, but may also leak private information inside the `{output-dir}/logs` folder.

Never share the debug output unsecurely.

Environment Variable | Description
--- | ---
PYFUNCEBLE_DEBUG | Activates the debug mode.
PYFUNCEBLE_DEBUG_LVL | The logging level. Can be any of `NONE`, `INFO`, `WARNING`, `ERROR`, `CRITICAL` or `DEBUG`.
PYFUNCEBLE_LOGGING_LVL | Alias of `PYFUNCEBLE_DEBUG_LVL`.
PYFUNCEBLE_DEBUG_ON_SCREEN | Activates the output of debug logs to STDOUT. Should be `true` or `false`.

## Internal Environment Variables

The environment variables shouldn't be set by yourself, but PyFunceble somehow still read and use them. #MayTheForceBeWithYou

Environment Variable | Description
--- | ---
APPDATA | Used under Windows to build or get the configuration folder, when `PYFUNCEBLE_CONFIG_DIR` is not found.
GITHUB_ACTIONS | Used to detect whether we are running under a GitHub Action worker
GITLAB_CI | Used to detect whether we are running under a GitLab CI/CD runner.
GITLAB_USER_ID | Used to detect whether we are running under a GitLab CI/CD runner.
TRAVIS_BUILD_DIR | Used to detect whether we are running under a Travis CI instance.
JENKINS_URL | Used to detect whether we are running under a Jenkins CI worker.
JENKINS_HOME | Used to detect whether we are running under a Jenkins CI worker.
PYFUNCEBLE_STANDALONE_CI | Used to detect whether we are running under a Standalone CI/CD engine.

## Beta Features

Beware!!!

This section is documented, but most of the features below them are not open to everyone - yet.

The environment variables listed below, are strictely reserved to selected or power users.

Environment Variable | Description
--- | ---
PYFUNCEBLE_PLATFORM_API_TOKEN | Set the API token to use when pushing data into the platform API.
PYFUNCEBLE_PLATFORM_CHECKER_PRIORITY | Set the prioritized checker to accept while testing for the platform.
PYFUNCEBLE_PLATFORM_CHECKER_EXCLUDE | Set the checker to exclude while testing for the platform.