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: build arm64 binaries from json matrix #4342

Conversation

leet4tari
Copy link
Contributor

Description
Update supporting scripts to cross-compile build extra binaries for ARM64 OSX and Linux

Motivation and Context
Add ARM64 builds for OSX and Linux

How Has This Been Tested?
Build and run locally and in GHA from local fork

@leet4tari leet4tari requested a review from stringhandler July 25, 2022 10:36
Copy link
Collaborator

@stringhandler stringhandler left a comment

Choose a reason for hiding this comment

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

Looks ok. Need to resolve conflicts

"target": "x86_64-pc-windows-msvc",
"cross": false,
"target_cpu": "x86-64",
"features": "safe"
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think windows doesn't need safe... but could be wrong

Copy link
Contributor Author

Choose a reason for hiding this comment

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

CPU target set, if the windows binary is run on older hardware, I think we see a illegal cpu instruction. We could really use the matrix build and target a faster CPU instruction set like avx2, but doubling up the builds might not add value?

Copy link
Collaborator

Choose a reason for hiding this comment

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

I think we generally only target Haswell and above. Anything older should compile from source.

I think we only use safe on macos because it used to fail

Copy link
Contributor Author

@leet4tari leet4tari Jul 26, 2022

Choose a reason for hiding this comment

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

target_cpu and features could be matrix build in future, but thinking we get the base in and then we can extend as needed or as requested?

Also not sure what features we want to enable in a build, but can be done per matrix set.

Source: "..\target\release\tari_console_wallet.exe"; DestDir: "{app}\runtime"; Flags: ignoreversion
Source: "..\target\release\tari_miner.exe"; DestDir: "{app}\runtime"; Flags: ignoreversion
Source: "..\target\release\tari_merge_mining_proxy.exe"; DestDir: "{app}\runtime"; Flags: ignoreversion
Source: "D:\a\tari\tari\dist\tari_base_node.exe"; DestDir: "{app}\runtime"; Flags: ignoreversion
Copy link
Collaborator

Choose a reason for hiding this comment

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

woops

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Referring to the D: hard codec location of the target build? I have no idea how to pass a variable into Inno ISS scripts.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Added a default and command line override.

Also included tari_validator_node.exe to Windows package.

@leet4tari leet4tari requested a review from stringhandler July 26, 2022 10:06
@stringhandler stringhandler merged commit 53397e0 into tari-project:development Jul 26, 2022
@leet4tari leet4tari deleted the build-gha-leet-develop-matrix-json branch August 1, 2022 11:35
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.

2 participants