How we made our integration tests delightful by optimizing our GitHub Actions workflow

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • zenml

    ZenML 🙏: Build portable, production-ready MLOps pipelines. https://zenml.io.

  • As of early March 2022 this is the new CI pipeline that we use here at ZenML and the feedback from my colleagues -- fellow engineers -- has been very positive overall. I am sure there will be tweaks, changes and refactorings in the future, but for now, this feels Zen.

  • Poetry

    Python packaging and dependency management made easy

  • Caching is a powerful way to speed up repeating processes. We run 'poetry install' in one such process that is necessary for each aspect of our CI pipeline. We didn't want to commit the 'poetry.lock' file to ensure we would keep ZenML compatible with the newest versions of packages that we are integrating with and test regardless of the state on the developer's machine. On average the Poetry installation would take between 10-15 minutes for each cell on the OS-Python Version matrix.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • k3d

    Little helper to run CNCF's k3s in Docker

  • We ran into one such case at ZenML. One of our integrations is Kubeflow Pipelines. This integration needs to spin up a cluster of pods using k3d in order to deploy Kubeflow Pipelines. Then all of our other integration tests are run on this cluster. This whole process takes about 1 hour to run and so it is not something we want running for each push on each PR. Instead, we want to have some control over when it is appropriate.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts