adoptium / adoptium/aqa-test-tools

Enable PerfNext To Use Openjdk-tests Framework

Open
#31 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Jupyter Notebook
Stars
33
Forks
97
Avg merge
7h 9m
Merged PRs (30d)
5

Description

### Background
Currently, PerfNext uses its own pipeline to launch benchmark jobs, a process requiring several setup steps such as downloading and setting up benchmark and SDK packages.

### Proposal
PerfNext should use the Openjdk-tests Framework (https://github.com/AdoptOpenJDK/openjdk-tests) by using its pipeline scripts, which have several functionalities including the ones that PerfNext needs. This move would streamline the execution of performance tests into the CI pipelines that are used for other system and functional tests.

Currently, PerfNext has an API called `/api/benchengine/submit` (aka BenchEngine) that generates the necessary scripts and submits the request to Jenkins.
https://github.com/AdoptOpenJDK/openjdk-test-tools/blob/b528a63ea146080f4bb1430740a734c2af87df7e/PerfNext/app/apis/BenchEngine/parser.js#L42-L54

As shown above, `/api/benchengine/submit` API currently sends 2 scripts to Jenkins Pipeline:
setupScript: It does all the setup tasks such as downloading benchmark and SDK packages.
benchmarkScript: Exports all the necessary environment variables and runs the main benchmark script.

We could get rid of the `setupScript` since Openjdk-tests Framework can already do that. We would still need the ability to generate `benchmarkScript` so that developers are able to change default configs and PerfNext can pass the custom benchmark script to Openjdk-tests Framework to run.

### Details
I'll be adding more details to this issue soon.

Contributor guide

Open the contributing guide

Research direction

Start with PerfNext/app/apis/BenchEngine/parser.js at lines 42-54 and the /api/benchengine/submit flow. Read the Openjdk-tests Framework pipeline scripts to understand which setup tasks they cover and how a custom benchmarkScript is passed to Jenkins. Done means removing the redundant setupScript while retaining configurable benchmarkScript generation and CI execution.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, javascript
Domain
ci-cd, devops, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.