CI/CD pipelines

Language:

  • Python

  • Groovy

Frameworks:

  • Flask + RESTPlus

  • Celery

  • Locust (load testing)

  • flake8 (linting)

  • black (code format)

CI:

  • Jenkins pipelines

  • Docker Compose Jenkins agents

2017 - 2019

I set up a number of CI/CD pipelines at Oracle related to different projects. For example a testing pipeline for service monitoring tools, which runs lint then unit and integration tests against MRs for the tools. Using a Jenkins pipeline to run up the infrastructure with docker compose on Jenkins build agents.

Once that pipeline completes, it triggers a separate stress test pipeline to detect any performance degradation. The stress test pipeline takes a while to test both the web and asynchronous code. So it is not used to pass / fail the MR but summary plots of each builds performance are created as well as detailed performance build artifacts.

The image shows, on the bottom graph, an example of a degradation and subsequent fix for the asynchronous tasks performance.