Integration Test Setup¶
Integration testing is done by GitHub Actions contained in this repository, which provide a CI/CD pipeline to test, build, and deploy sqlalchemy_exasol to Pypi.
Two main workflows are used for this purpose:
CI¶
This is meant to be used as the test workflow. It’s located under:
sqlalchemy_exasol/.github/workflows/CI.yml
This workflow will be executed anytime there’s a commit pushed to any branch that is not master, or whenever there’s a pull request created where the base branch is not master. It runs a Docker Container with an Exasol database for every version specified in matrix.exasol_version, and uses those DBs to executes all tests in the repository. If everything went fine, it will create a package distribution using both sdist and wheel.
To run it just commit and push to any non-master branch and watch the workflow run in:
CI-CD¶
This is meant to be used as the Production workflow. It’s located under:
sqlalchemy_exasol/.github/workflows/CI-CD.yml
This workflow will be executed anytime there’s a commit pushed to master, or whenever a tag (release) is pushed. It does all the same steps than the CI workflow with one additional step at the end: Upload the package to Pypi. This upload step only happens when a tag is pushed, it will not be executed when commits are done in master.
To run it just commit and push to master (Optional: push a tag in case you want Pypi upload) and watch the workflow run in:
https://github.com/exasol/sqlalchemy_exasol/actions
The status of the CI-CD workflow will always be reflected in the badge called “build” in the README.rst and Home Page of this repository