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

build: use cross for cross-compilation, locally and in CD #343

Merged
merged 2 commits into from
Jan 25, 2024

Conversation

LucasFA
Copy link
Contributor

@LucasFA LucasFA commented Jan 23, 2024

TL;DR: of each commit is in order:

  1. Enables local cross compilation from Linux (at least x86_64) to Linux both aarch64 or armv7 by using cross.
  2. Leverages cross and applies it to the CD workflow to build the release binaries.

Major significant benefit it actually just using current images - the FROM in the Dockerfile resolves to ghcr.io/cross-rs/aarch64-unknown-linux-gnu:latest. That by itself could have been a PR.

By the way, to see that TLDR in the code I recommend checking each commit individually. Both together it just looks like a mess 🙃

With the intention of migrating gh action to native solution with cross

Supported targets: aarch-64-linux-gnu, armv7-unknown-linux-gnueabihf
Use cross build --target (target)

Note: docker base images have been updated. See related documentation:
https://github.com/cross-rs/cross/wiki/FAQ#custom-images
Update container images along with it. Also a couple actions.

Use action-rs/cargo only for the built in support. It is the documented
gh actions way in the cross README. Manually would probably increase
times significantly.
Copy link
Owner

@aome510 aome510 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice!

@aome510 aome510 merged commit c308833 into aome510:master Jan 25, 2024
4 checks passed
@LucasFA LucasFA deleted the cross-compile branch January 26, 2024 01:22
@LucasFA
Copy link
Contributor Author

LucasFA commented Jan 26, 2024

Dropping this here since each bit in the PR is documented within cross but is not easily that searchable:

  1. This is cross' documentation regarding using it in github actions.
  2. This is the custom images section, documenting CROSS_DEB_ARCH and CROSS_DEB_IMAGE

LucasFA added a commit to LucasFA/hackernews-TUI that referenced this pull request Jan 27, 2024
* build: local cross compilation

With the intention of migrating gh action to native solution with cross

Supported targets: aarch-64-linux-gnu, armv7-unknown-linux-gnueabihf
Use cross build --target (target)

Note: docker base images have been updated. See related documentation:
https://github.com/cross-rs/cross/wiki/FAQ#custom-images

* build(cd): use cross for CD

Update container images along with it. Also a couple actions.

Use action-rs/cargo only for the built in support. It is the documented
gh actions way in the cross README. Manually would probably increase
times significantly.

See aome510/spotify-player#343
aome510 added a commit to aome510/hackernews-TUI that referenced this pull request Feb 12, 2024
* Update CD workflows to use use `cross`

* build: local cross compilation

With the intention of migrating gh action to native solution with cross

Supported targets: aarch-64-linux-gnu, armv7-unknown-linux-gnueabihf
Use cross build --target (target)

Note: docker base images have been updated. See related documentation:
https://github.com/cross-rs/cross/wiki/FAQ#custom-images

* build(cd): use cross for CD

Update container images along with it. Also a couple actions.

Use action-rs/cargo only for the built in support. It is the documented
gh actions way in the cross README. Manually would probably increase
times significantly.

See aome510/spotify-player#343
---------

Co-authored-by: Thang Pham <phamducthang1234@gmail.com>
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

2 participants