-
Notifications
You must be signed in to change notification settings - Fork 4.9k
Description
Goal
- Migrate the internal E2E pipeline to GitHub Actions under goharbor.
This goal was discussed in our meeting, recording is available in the Slack:
https://cloud-native.slack.com/files/U051J3DBMJS/F08MSD1P739/e2e_pipeline.mp4
The updates will be tracked on this issue.
Migration Plan
After consideration, it’s best to run these pipelines on PRs instead of nightly runs.
The rationale: if 3 - 4 PRs get merged in a day and the nightly run fails, it becomes harder to identify the issue, and the main branch ends up broken. My goal is to keep main working as much as possible.
Strategy
The idea is to:
- Break down the large test suite into smaller, isolated components.
- Run these subtests concurrently.
- Each test currently takes around 10–30 mins.
- The existing pipeline takes 45 mins or more (worst case scenario), So, I believe this approach is feasible.
If we split and run separately, total runtime may reduce to ~20-30 mins.
These tests include components such as:
- DB.robot (Feat: Add APITEST_DB_NIGHTLY test #21950)
- Teardown.robot (feat: add e2e Teardown nightly test #22149)
- Routing.robot (Feat: Add e2e test routing nightly #22146)
- Common_GC.robot ((WIP) feat: Add Nightly Test for GC #22144)
- Common.robot
- Webhook.robot #22150
- P2P_Preheat.robot
- Trivy.robot
!!Webhook.robot
This e2e test involves infra requirement such as
- Webhook endpoint
- Webhook endpoint UI. where it can find the triggered webhook.
So, we need to setup webhook server and with an accessible ui as defined in the robot
tests.
Note
I am trying to use only the github actions environment only as possible. to enable other devs to test their PRs locally. to run the pipelines locally before commiting. So, At worst case, I might switch to a deployed service. if the time to setup the environment in the github actions is too high (i.e time to setup the environemnt take more than 20 - 30 mins). Because at this stage people can't wait an hour to get the tests complete on PR. This is the overall idea. hope this make sense.
Feel free to help me out on this one. We are actively looking for contributors to help.
Thanks