Skip to content

Trino CI CD

Jan Waś edited this page Jan 21, 2022 · 8 revisions

Pipeline performance

Job duration

Building and testing

Attempts at reducing build time:

Product tests

The heaviest jobs are product tests because they:

  • set up complex environments: a Trino cluster, made of a coordinator and some workers, and other dependencies, like Hive
  • generate test data
  • execute a lot and/or complex queries

TODO to confirm the above, profile tests to be able to get average times for different steps.

Possible solutions:

  • go through every test and see if they can be converted to integration tests - be careful not to reduce test coverage; historically, integration tests in Trino were not using containerized dependencies, so some tests were implemented as product tests, where dependencies were running in VMs

Queue

Trino's CI/CD pipelines are implemented as Github Workflows that use Github's public runners. Because there's a limit of concurrent jobs, runs are often queued for a long time before they execute.

The solution is to make the jobs shorter and (in PRs only) skip ones not relevant to the change.

Clone this wiki locally