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

[Experimental] Add CI GitHub Actions workflow #3586

Open
wants to merge 10 commits into
base: develop
Choose a base branch
from

Conversation

rajadain
Copy link
Member

@rajadain rajadain commented Dec 30, 2022

Overview

Because of the absence of nested virtualization support on GitHub Actions, we cannot run Vagrant / Ansible / Packer tasks on the vanilla Linux runners. However, Vagrant is supported on macOS runners, which unfortunately are 10x more expensive than the Linux runners.

Furthermore, because of the ephemeral nature of GitHub Actions, we don't get any advantages of VM reuse, since they have to be provisioned from scratch every time. Thus, a Jenkins CI build which takes between 8-20 minutes, takes about an hour on GitHub Actions, because it is provisioning every VM from scratch every time, even though we are caching the Vagrant boxes and VMs.

Further Reading:

Connects #3584

Demo

image

Some successful runs:

Recommendation

Because of the high cost of operation and the architectural impedance of running persistence based workflows in an ephemeral environment, it would be best to consider using a custom external runner for this. That would allow us to take advantage of persisted states, keep the running costs low, and implement arbitrary workflows without the limitations faced above.

This PR should not be merged, but can be left open to serve as a reference implementation for the local runner attempt.

@rajadain rajadain changed the title Add CI GitHub Actions workflow [Experimental] Add CI GitHub Actions workflow Jan 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant