-
Notifications
You must be signed in to change notification settings - Fork 50
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
Use go's native cross-compilation for binaries #190
Conversation
Go supports native cross-compilation; there's no need to build in qemu
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
General questions:
- We were previously using released versions of cli. Now we're using a submodule. Are we planning to point it only to release tags? How do we manage that?
- Should we ensure that the server embedded in the cli is the same as the server in this image? If we do want to do that, how? go mod replace?
- Should we skip right to the new pre-release cli instead of the old-new one?
|
We can still attempt to point to only official releases.
The old-new cli never had an official non-preview release so this shouldn't be a breaking change. Only |
Pattern rules to the rescue
We should only point to official releases, I agree. And I'll file a ticket to swap to the pre-release new CLI as follow-up work |
We aren't guaranteed to have access to {} expansion
If you need to build and push locally remove the --set bit and change --load to --push
This cleans up how we specify its target
The arm64 dockerize binary keeps getting deleted by make
00a0c5b
to
98c025d
Compare
Co-authored-by: David Reiss <david@temporal.io>
1. Cross-compilation is done outside of the docker container, and images are copying in pre-built binaries 2. All external dependencies are vendored using submodules instead of cloning (dockerize) or curling (cli) Building this container now takes ~1m locally instead of over an hour on my aarch64 laptop. I tested this locally by running `make build test`
1. Cross-compilation is done outside of the docker container, and images are copying in pre-built binaries 2. All external dependencies are vendored using submodules instead of cloning (dockerize) or curling (cli) Building this container now takes ~1m locally instead of over an hour on my aarch64 laptop. I tested this locally by running `make build test`
What was changed
Why?
Building this container now takes ~1m locally instead of over an hour on my aarch64 laptop.
Checklist
I tested this locally by running
make build test