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

SDK Build/test pipeline separation from build-image #599

Closed
markmandel opened this issue Feb 19, 2019 · 4 comments
Closed

SDK Build/test pipeline separation from build-image #599

markmandel opened this issue Feb 19, 2019 · 4 comments
Assignees
Labels
area/build-tools Development tooling. I.e. pretty much everything in the `build` directory. kind/design Proposal discussing new features / fixes and how they should be implemented kind/feature New features for Agones
Milestone

Comments

@markmandel
Copy link
Collaborator

As we add more SDKs the build-image is getting more and stuff installed in it.

My proposal would be to find a way to have a smaller build image for each of the SDKs, to compile and test each SDK individualy, rather than have rust, and node and go, and C++ all live in the same build image.

This would also allow us to build and test each sdk in parallel, which is nice as well -- and also means that if you want to add a dependency to the top of the build-image - we aren't recompiling rust every time.

It should hopefully also lower the barrier to entry for new SDK developers as well.

Some initial, vague ideas

  1. Have a central Makefile include for all SDKs, that does much of what the build/Makefile does - tagging based on sha, create build image for the sdk if it doesn't exist, etc (maybe it could be shared across the project? Also set a standard set of targets: build, test, etc.
  2. Have a base SDK build image -- that sets the gRPC version, and likely includes protoc installed already. SDK authors can extend this, install their language of choice and move forward from there.
  3. Update Cloud Build to manage these images as well - might be able to integrate this into the build/makefile ?

Then we can strip Rust, compiled protoc, and C++ out from the build image, and that will lower it's size considerably, as well as make faster to build when updates occur.

@markmandel markmandel added kind/feature New features for Agones kind/design Proposal discussing new features / fixes and how they should be implemented area/build-tools Development tooling. I.e. pretty much everything in the `build` directory. labels Feb 19, 2019
@cyriltovena cyriltovena self-assigned this Feb 22, 2019
@cyriltovena
Copy link
Collaborator

I'll work on this.

@cyriltovena
Copy link
Collaborator

To close this we should improve the ci. Currently building images each times.

@markmandel
Copy link
Collaborator Author

Feels like we an close this. WDYT?

@markmandel
Copy link
Collaborator Author

Looks like no objections! Closing!

@markmandel markmandel added this to the 0.12.0 milestone Jul 30, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/build-tools Development tooling. I.e. pretty much everything in the `build` directory. kind/design Proposal discussing new features / fixes and how they should be implemented kind/feature New features for Agones
Projects
None yet
Development

No branches or pull requests

2 participants