ni / ni/nimi-python

Investigate how many APIs can be tested in parallel by nimibot.

Open
#2,017 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

build enhancement priority-low test
Dominant language
Python
Stars
128
Forks
110
Avg merge
5d 14h
Merged PRs (30d)
10

Description

Description of issue

There are 3 nimibot runners.

  • 1 for Linux
  • 1 for 32-bit Python on Windows
  • 1 for 64-bit Python on Windows

By default, if max-parallel is not specified in the workflow, a value will be used based upon runner availability. Since we seem to only test 3 APIs on each nimibot at once, I suspect this is being set to 3 based upon the existence of 3 runners, despite the fact that each workflow is restricted to a specific runner. We might be able to set it higher and test more APIs at once, reducing the time that it takes to complete testing.

(We should keep in mind that there are shared resources, like the grpc_device_server and some multi-threading tests). I also don't know how many processors these VMs have available. It may or may not be a good idea to set max-parallel all the way to 9.

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

Locate the workflow that runs nimibot's API tests and inspect its max-parallel value, runner restrictions, and related shared-resource tests. Measure or establish the available VM capacity and determine a safe parallelism setting; done means reporting the supported value and any required workflow change.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, python
Domain
ci-cd, testing-qa
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.