Skip to content

Migrate Internal Pipeline to Github Actions #22134

@bupd

Description

@bupd

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:

!!Webhook.robot

This e2e test involves infra requirement such as

  1. Webhook endpoint
  2. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions