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

feat: Allow full customization of runner images and periodically update them #47

Merged
merged 7 commits into from Jun 21, 2022

Conversation

kichik
Copy link
Member

@kichik kichik commented Jun 18, 2022

Build images in AWS using CodeBuild (or any user configured method) so that:

  1. We can automatically update images on a schedule to get the latest runner version and latest OS updates.
  2. We can build any type of image independent of the deployment platform. This will make it easy to provide Windows or ARM images (closes More runner architectures #7).
  3. We can expose an interface allowing the user to easily modify the Docker images by adding packages or commands to the build process (closes Runner image customization #26).

BREAKING CHANGE: providers no longer take runner version directly

…te them

Build images in AWS using CodeBuild (or any user configured method) so that:
1. We can automatically update images on a schedule to get the latest runner version and latest OS updates.
2. We can build any type of image independent of the deployment platform. This will make it easy to provide Windows or ARM images (closes #7).
3. We can expose an interface allowing the user to easily modify the Docker images by adding packages or commands to the build process (closes #26).

BREAKING CHANGE: providers no longer take runner version directly
@kichik kichik mentioned this pull request Jun 18, 2022
@kichik
Copy link
Member Author

kichik commented Jun 18, 2022

See the updated readme for usage.

@sercantor
Copy link

Would it be more obvious to have a matching provider label for self-hosted.yml and the readme? Like:

// create a custom CodeBuild provider
const myProvider = new CodeBuildRunner(this, 'codebuild runner', { 
    label: 'codebuild-x64',
    ...
});
// grant some permissions to the provider
...

// create the runner infrastructure
new GitHubRunners(this, 'runners', {
    providers: [codebuild-x64],
});

I'm just suggesting it because there may be people copying from the readme and not seeing their workers running because the labels don't match when they run their workflow against self.hosted.yml. Also makes it obvious for people to see that there are options for architecture.

Again, it's just a suggestion 🤷

@kichik
Copy link
Member Author

kichik commented Jun 19, 2022

That's a good point. I keep forgetting to add proper workflow example. self-hosted.yml is not an ideal example. It's way too complex.

@sercantor
Copy link

great commit, it's definitely more readable now, thanks for all the work 👍

@mergify mergify bot merged commit 25d536a into main Jun 21, 2022
@mergify mergify bot deleted the image-builder branch June 21, 2022 15:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Runner image customization More runner architectures
2 participants