Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Task]: Automate ballerina performance testing #43490

Open
2 tasks done
heshanpadmasiri opened this issue Oct 15, 2024 · 1 comment
Open
2 tasks done

[Task]: Automate ballerina performance testing #43490

heshanpadmasiri opened this issue Oct 15, 2024 · 1 comment

Comments

@heshanpadmasiri
Copy link
Member

heshanpadmasiri commented Oct 15, 2024

Description

Ideally we should be able to trigger a workflow in github that will run the performance tests in https://github.com/ballerina-platform/ballerina-performance and give us an report. For this we will need to do the fallowing,

  • Setup a self hosted runner.
    These tests will need more that 2 hours to run (and our objective is to run them close to metal as possible) therefore we can't use github actions to run the benchmark

  • Setup a private repository
    Using a self hosted runner for the public performance tests repository is a security risk since public forks and perform RCE on our VM by opening a pull request. Note that our runner VM will need permission to allocate cloud resources, so this is very dangerous.

Describe your task(s)

No response

Related area

-> CICD

Related issue(s) (optional)

No response

Suggested label(s) (optional)

No response

Suggested assignee(s) (optional)

No response

@heshanpadmasiri
Copy link
Member Author

When we trigger a performance test using github action even in a self hosted runner we need to "orphan" the process that is running the test in order to avoid action time out killing it. However still gihub runner sends kill signal to all child processes when the action completes. Therefore I was unable to implement the self hosted runner approach. Instead I decided to do the fallowing

  1. In the VM we run a performance test server
  2. As part of the action we send a post request to the server which will trigger the performance test
  3. When the performance test has been completed server will create a pull request with the performance test results

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Development

No branches or pull requests

2 participants