PointCloudLibrary / PointCloudLibrary/pcl

[ci] Use GitHub actions for improving CI run times

Open
#4,280 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

kind: request kind: todo module: ci
Dominant language
C++
Stars
11.1k
Forks
4.7k
Avg merge
4d 10h
Merged PRs (30d)
6

Description

Currently, we can run only 12 jobs in parallel on AzurePipelines, taking nearly 2.5hrs for all the tests to run for each commit. We are also unable to add more checks to the CI because of the already long build times and limited jobs.

Context

GitHub actions allow for 20 parallel jobs for free for public repos (only 5 macOS in parallel).
We can offload some of the jobs to GitHub actions and add some more checks such as with and without OMP, clang-tidy, GPU builds on more versions of Ubuntu.

This gives a total of 32 parallel jobs 😍

Describe the solution you'd like

To start off, offload some jobs to actions. Moving MSVC and Clang job to actions will free up a lot of resources on azure.

IMO all the primary jobs i.e formatting, Ubuntu GCC, and tutorials (as well as macOS as its limited on GH actions) should continue running on azure and the remaining should be moved off to actions.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by mapping the existing Azure Pipelines jobs and their parallelism. Move the MSVC and Clang jobs to GitHub Actions while keeping formatting, Ubuntu GCC, tutorials, and macOS on Azure; done means the split works and the CI capacity increases without losing existing checks.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions
Domain
build-system, ci-cd, devops
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.