From 14556b447ff9b8a7a8332529dcbd34059630c26d Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 00:56:46 +0700 Subject: [PATCH 01/26] Use NativeBlsModule directly --- src/commands/masternode_vote_dpns_name.rs | 4 ++-- src/commands/register_dpns_name.rs | 6 +++--- src/commands/withdraw.rs | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/commands/masternode_vote_dpns_name.rs b/src/commands/masternode_vote_dpns_name.rs index 782eba9..c1e0c9e 100644 --- a/src/commands/masternode_vote_dpns_name.rs +++ b/src/commands/masternode_vote_dpns_name.rs @@ -7,6 +7,7 @@ use dpp::identifier::{Identifier, MasternodeIdentifiers}; use dpp::identity::accessors::IdentityGettersV0; use dpp::identity::hash::IdentityPublicKeyHashMethodsV0; use dpp::identity::{IdentityPublicKey}; +use dpp::native_bls::NativeBlsModule; use dpp::platform_value::string_encoding::Encoding::{Base58}; use dpp::platform_value::Value; use dpp::serialization::PlatformSerializable; @@ -63,7 +64,6 @@ impl MasternodeVoteDPNSNameCommand { } let secp = Secp256k1::new(); - let bls = dpp::native_bls::NativeBlsModule {}; let private_key_data = fs::read_to_string(&self.private_key).expect("Unable to read file"); let private_key = PrivateKey::from_wif(&private_key_data).expect("Could not load private key from WIF"); @@ -112,7 +112,7 @@ impl MasternodeVoteDPNSNameCommand { let mut masternode_vote_state_transition = StateTransition::from(masternode_vote_transition); - masternode_vote_state_transition.sign(&identity_public_key, private_key.to_bytes().as_slice(), &bls).unwrap(); + masternode_vote_state_transition.sign(&identity_public_key, private_key.to_bytes().as_slice(), &NativeBlsModule).unwrap(); let preorder_buffer = masternode_vote_state_transition.clone().serialize_to_bytes().unwrap(); diff --git a/src/commands/register_dpns_name.rs b/src/commands/register_dpns_name.rs index 493fa3f..971e2a7 100644 --- a/src/commands/register_dpns_name.rs +++ b/src/commands/register_dpns_name.rs @@ -13,6 +13,7 @@ use dpp::identifier::Identifier; use dpp::identity::accessors::IdentityGettersV0; use dpp::identity::hash::IdentityPublicKeyHashMethodsV0; use dpp::identity::IdentityPublicKey; +use dpp::native_bls::NativeBlsModule; use dpp::platform_value::string_encoding::Encoding::Base58; use dpp::platform_value::{platform_value, Value}; use dpp::serialization::PlatformSerializable; @@ -75,7 +76,6 @@ impl RegisterDPNSNameCommand { } let secp = Secp256k1::new(); - let bls = dpp::native_bls::NativeBlsModule {}; let private_key_data = fs::read_to_string(&self.private_key).expect("Unable to read file"); let private_key = PrivateKey::from_wif(&private_key_data).expect("Could not load private key from WIF"); @@ -133,7 +133,7 @@ impl RegisterDPNSNameCommand { transitions: vec![pre_order_transition] }); - preorder_state_transition.sign(identity_public_key, private_key.to_bytes().as_slice(), &bls).unwrap(); + preorder_state_transition.sign(identity_public_key, private_key.to_bytes().as_slice(), &NativeBlsModule).unwrap(); let preorder_buffer = preorder_state_transition.clone().serialize_to_bytes().unwrap(); @@ -179,7 +179,7 @@ impl RegisterDPNSNameCommand { transitions: vec![domain_document_transition] }); - domain_state_transition.sign(identity_public_key, private_key.to_bytes().as_slice(), &bls).unwrap(); + domain_state_transition.sign(identity_public_key, private_key.to_bytes().as_slice(), &NativeBlsModule).unwrap(); let domain_buffer = domain_state_transition.clone().serialize_to_bytes().unwrap(); diff --git a/src/commands/withdraw.rs b/src/commands/withdraw.rs index b0da529..353fbf6 100644 --- a/src/commands/withdraw.rs +++ b/src/commands/withdraw.rs @@ -8,6 +8,7 @@ use dpp::identity::accessors::IdentityGettersV0; use dpp::identity::core_script::CoreScript; use dpp::identity::hash::IdentityPublicKeyHashMethodsV0; use dpp::identity::IdentityPublicKey; +use dpp::native_bls::NativeBlsModule; use dpp::platform_value::string_encoding::Encoding::{Base58}; use dpp::serialization::{PlatformSerializable}; use dpp::state_transition::identity_credit_withdrawal_transition::v1::IdentityCreditWithdrawalTransitionV1; @@ -63,7 +64,6 @@ impl WithdrawCommand { } let secp = Secp256k1::new(); - let bls = dpp::native_bls::NativeBlsModule {}; let private_key_data = fs::read_to_string(&self.private_key).expect("Unable to read file"); let private_key = PrivateKey::from_wif(&private_key_data).expect("Could not load private key from WIF"); @@ -106,7 +106,7 @@ impl WithdrawCommand { let mut state_transition = StateTransition::from(identity_credit_withdrawal_transition); - state_transition.sign(&identity_public_key, private_key.to_bytes().as_slice(), &bls).unwrap(); + state_transition.sign(&identity_public_key, private_key.to_bytes().as_slice(), &NativeBlsModule).unwrap(); let buffer = state_transition.serialize_to_bytes().unwrap(); let tx_hash = digest(buffer.clone()); From 8e228c9d6d449d319351e0b779f6d9e1588a54ef Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 01:32:35 +0700 Subject: [PATCH 02/26] Build Linux aarch64 --- .github/workflows/build.yml | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1835e38..79a43ad 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,13 +7,16 @@ on: - master jobs: - test: - name: Build + build_linux: + name: Build Linux runs-on: ubuntu-22.04 timeout-minutes: 30 steps: - uses: actions/checkout@v4 + - name: Install dependencies + run: sudo apt-get install -y build-essential cc pkg-config libssl-dev clang cmake llvm g++-aarch64-linux-gnu gcc-aarch64-linux-gnu + - name: Install protoc id: deps-protoc shell: bash @@ -24,5 +27,28 @@ jobs: echo "PROTOC=${HOME}/.local/bin/protoc" >> $GITHUB_ENV export PATH="${PATH}:${HOME}/.local/bin" - - name: Build - run: cargo build --verbose + - name: Add Rust targets + run: rustup target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu x86_64-apple-darwin aarch64-apple-darwin + + - name: Build for Linux x86 + run: cargo build -r --target=x86_64-unknown-linux-gnu --verbose && mv target/x86_64-unknown-linux-gnu/release/platform-cli ./platform-cli-gnu-x86_64 + + - name: Build for Linux arm64 + run: cargo build -r --target=aarch64-unknown-linux-gnu --verbose && mv target/unknown-linux-gnu/release/platform-cli ./platform-cli-gnu-arm64 + + build_apple: + name: Build Apple + runs-on: ubuntu-22.04 + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + + - name: Add Rust targets + run: rustup target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu x86_64-apple-darwin aarch64-apple-darwin + + - name: Build for Apple x86 + run: cargo build -r --target=x86_64-apple-darwin --verbose && mv target/x86_64-apple-darwin/release/platform-cli ./platform-cli_darwin-x86_64 + + - name: Build for Apple Silicon + run: cargo build -r --target=aarch64-apple-darwin --verbose && mv target/aarch64-apple-darwin/release/platform-cli ./platform-cli_darwin-arm64 + From dfdc4fae445f4b72f47e8b534355587234162cf7 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 01:39:29 +0700 Subject: [PATCH 03/26] Remove cc --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 79a43ad..949e696 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,7 +15,7 @@ jobs: - uses: actions/checkout@v4 - name: Install dependencies - run: sudo apt-get install -y build-essential cc pkg-config libssl-dev clang cmake llvm g++-aarch64-linux-gnu gcc-aarch64-linux-gnu + run: sudo apt-get install -y build-essential pkg-config libssl-dev clang cmake llvm g++-aarch64-linux-gnu gcc-aarch64-linux-gnu - name: Install protoc id: deps-protoc From 035f04119ed4a9ed841ecffb1b3a8a942e9b5b87 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 01:42:22 +0700 Subject: [PATCH 04/26] Use macos runner --- .github/workflows/build.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 949e696..2a4b3d1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -38,13 +38,16 @@ jobs: build_apple: name: Build Apple - runs-on: ubuntu-22.04 + runs-on: macos-15 timeout-minutes: 30 steps: - uses: actions/checkout@v4 +# - name: Add Rust targets +# run: brew install llvm protoc + - name: Add Rust targets - run: rustup target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu x86_64-apple-darwin aarch64-apple-darwin + run: rustup target add x86_64-apple-darwin aarch64-apple-darwin - name: Build for Apple x86 run: cargo build -r --target=x86_64-apple-darwin --verbose && mv target/x86_64-apple-darwin/release/platform-cli ./platform-cli_darwin-x86_64 From bafd323b55ed14e14f52c338c75f378fa8eb94a3 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 01:49:07 +0700 Subject: [PATCH 05/26] Add protoc & llvm --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2a4b3d1..7a4118d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,8 +43,8 @@ jobs: steps: - uses: actions/checkout@v4 -# - name: Add Rust targets -# run: brew install llvm protoc + - name: Add Rust targets + run: brew install llvm protoc - name: Add Rust targets run: rustup target add x86_64-apple-darwin aarch64-apple-darwin From 953cb8bc9e95e5f79e48aa8d588393af8fd8e61b Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 01:54:49 +0700 Subject: [PATCH 06/26] Replace protoc with protobuf --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7a4118d..a2e40d9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,7 +44,7 @@ jobs: - uses: actions/checkout@v4 - name: Add Rust targets - run: brew install llvm protoc + run: brew install llvm protobuf - name: Add Rust targets run: rustup target add x86_64-apple-darwin aarch64-apple-darwin From 58c66def56234f16db84a58bae4d4a15160f11fe Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 02:12:04 +0700 Subject: [PATCH 07/26] Create cargo config for linux builds --- .github/workflows/build.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a2e40d9..22469fd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,8 +27,19 @@ jobs: echo "PROTOC=${HOME}/.local/bin/protoc" >> $GITHUB_ENV export PATH="${PATH}:${HOME}/.local/bin" + - name: Create Cargo multiarch config + run: | + touch ~/.cargo/config.toml + echo " + [target.x86_64-unknown-linux-gnu] + linker = "aarch64-linux-gnu-gcc" + + [target.aarch64-unknown-linux-gnu] + linker = "aarch64-linux-gnu-gcc" + " > ~/.cargo/config.toml + cat ~/.cargo/config.toml - name: Add Rust targets - run: rustup target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu x86_64-apple-darwin aarch64-apple-darwin + run: rustup target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu - name: Build for Linux x86 run: cargo build -r --target=x86_64-unknown-linux-gnu --verbose && mv target/x86_64-unknown-linux-gnu/release/platform-cli ./platform-cli-gnu-x86_64 From f985c08404f4a5b875f44c2f9a92ad1833ce5c2e Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 02:17:50 +0700 Subject: [PATCH 08/26] Fix linkers for Linux --- .github/workflows/build.yml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 22469fd..54d9ec1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,12 +32,11 @@ jobs: touch ~/.cargo/config.toml echo " [target.x86_64-unknown-linux-gnu] - linker = "aarch64-linux-gnu-gcc" + linker = "x86_64-linux-gnu-gcc" [target.aarch64-unknown-linux-gnu] linker = "aarch64-linux-gnu-gcc" " > ~/.cargo/config.toml - cat ~/.cargo/config.toml - name: Add Rust targets run: rustup target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu @@ -57,6 +56,18 @@ jobs: - name: Add Rust targets run: brew install llvm protobuf + - name: Create Cargo multiarch config + run: | + touch ~/.cargo/config.toml + echo " + [target.x86_64-apple-darwin] + linker = "aarch64-linux-gnu-gcc" + + [target.aarch64-apple-darwin] + linker = "aarch64-linux-gnu-gcc" + " > ~/.cargo/config.toml + cat ~/.cargo/config.toml + - name: Add Rust targets run: rustup target add x86_64-apple-darwin aarch64-apple-darwin From 2a4db5bfefb827387c8ba1215fe623c0faa9ba07 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 02:22:10 +0700 Subject: [PATCH 09/26] Remove Cargo config for mac builds --- .github/workflows/build.yml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 54d9ec1..24fe9dc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -56,18 +56,6 @@ jobs: - name: Add Rust targets run: brew install llvm protobuf - - name: Create Cargo multiarch config - run: | - touch ~/.cargo/config.toml - echo " - [target.x86_64-apple-darwin] - linker = "aarch64-linux-gnu-gcc" - - [target.aarch64-apple-darwin] - linker = "aarch64-linux-gnu-gcc" - " > ~/.cargo/config.toml - cat ~/.cargo/config.toml - - name: Add Rust targets run: rustup target add x86_64-apple-darwin aarch64-apple-darwin From cbeeab2d76921cd520b5f1d92eb9b0250d8a4be8 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 02:42:27 +0700 Subject: [PATCH 10/26] Escape double quoutes --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 24fe9dc..b9ee52c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,10 +32,10 @@ jobs: touch ~/.cargo/config.toml echo " [target.x86_64-unknown-linux-gnu] - linker = "x86_64-linux-gnu-gcc" + linker = \"x86_64-linux-gnu-gcc\" [target.aarch64-unknown-linux-gnu] - linker = "aarch64-linux-gnu-gcc" + linker = \"aarch64-linux-gnu-gcc\" " > ~/.cargo/config.toml - name: Add Rust targets run: rustup target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu From 5dbe5094b66dd6a0144aced5e0c866f7ead91fd5 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 02:46:42 +0700 Subject: [PATCH 11/26] Add different runner for max x86_64 --- .github/workflows/build.yml | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b9ee52c..b4a6743 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,16 +27,6 @@ jobs: echo "PROTOC=${HOME}/.local/bin/protoc" >> $GITHUB_ENV export PATH="${PATH}:${HOME}/.local/bin" - - name: Create Cargo multiarch config - run: | - touch ~/.cargo/config.toml - echo " - [target.x86_64-unknown-linux-gnu] - linker = \"x86_64-linux-gnu-gcc\" - - [target.aarch64-unknown-linux-gnu] - linker = \"aarch64-linux-gnu-gcc\" - " > ~/.cargo/config.toml - name: Add Rust targets run: rustup target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu @@ -46,9 +36,9 @@ jobs: - name: Build for Linux arm64 run: cargo build -r --target=aarch64-unknown-linux-gnu --verbose && mv target/unknown-linux-gnu/release/platform-cli ./platform-cli-gnu-arm64 - build_apple: - name: Build Apple - runs-on: macos-15 + build_max_x86_64: + name: Build Apple (x86_64) + runs-on: macos-14 timeout-minutes: 30 steps: - uses: actions/checkout@v4 @@ -57,11 +47,24 @@ jobs: run: brew install llvm protobuf - name: Add Rust targets - run: rustup target add x86_64-apple-darwin aarch64-apple-darwin + run: rustup target add x86_64-apple-darwin - name: Build for Apple x86 run: cargo build -r --target=x86_64-apple-darwin --verbose && mv target/x86_64-apple-darwin/release/platform-cli ./platform-cli_darwin-x86_64 + build_max_arm64: + name: Build Apple (arm64) + runs-on: macos-15 + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + + - name: Add Rust targets + run: brew install llvm protobuf + + - name: Add Rust targets + run: rustup target add aarch64-apple-darwin + - name: Build for Apple Silicon run: cargo build -r --target=aarch64-apple-darwin --verbose && mv target/aarch64-apple-darwin/release/platform-cli ./platform-cli_darwin-arm64 From 254f59b07de628fd666b806a8bd1bdb5f51bf1d1 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 02:48:24 +0700 Subject: [PATCH 12/26] Revert accidentally deleted --- .github/workflows/build.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b4a6743..136851b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,6 +30,17 @@ jobs: - name: Add Rust targets run: rustup target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu + - name: Create Cargo multiarch config + run: | + touch ~/.cargo/config.toml + echo " + [target.x86_64-unknown-linux-gnu] + linker = \"x86_64-linux-gnu-gcc\ + + [target.aarch64-unknown-linux-gnu] + linker = \"aarch64-linux-gnu-gcc\" + " > ~/.cargo/config.toml + - name: Build for Linux x86 run: cargo build -r --target=x86_64-unknown-linux-gnu --verbose && mv target/x86_64-unknown-linux-gnu/release/platform-cli ./platform-cli-gnu-x86_64 From b79391ea14296f147ccc3b3d9af9f8317f17dafc Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 02:49:29 +0700 Subject: [PATCH 13/26] Fix quote typo --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 136851b..a4b9cfe 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -35,7 +35,7 @@ jobs: touch ~/.cargo/config.toml echo " [target.x86_64-unknown-linux-gnu] - linker = \"x86_64-linux-gnu-gcc\ + linker = \"x86_64-linux-gnu-gcc\" [target.aarch64-unknown-linux-gnu] linker = \"aarch64-linux-gnu-gcc\" From 946400aec189b498e3c39ca87aff03d294760712 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 02:53:04 +0700 Subject: [PATCH 14/26] Downgrade to macos13 (x86_64) --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a4b9cfe..4b449f6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -49,7 +49,7 @@ jobs: build_max_x86_64: name: Build Apple (x86_64) - runs-on: macos-14 + runs-on: macos-13 timeout-minutes: 30 steps: - uses: actions/checkout@v4 From c40fa2fdab3cbe0c49ec7c40771a5a57ef4f0895 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 03:07:42 +0700 Subject: [PATCH 15/26] Add libc6-dev-i386 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4b449f6..b7e1bfa 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,7 +15,7 @@ jobs: - uses: actions/checkout@v4 - name: Install dependencies - run: sudo apt-get install -y build-essential pkg-config libssl-dev clang cmake llvm g++-aarch64-linux-gnu gcc-aarch64-linux-gnu + run: sudo apt-get install -y build-essential pkg-config libssl-dev clang cmake llvm g++-aarch64-linux-gnu gcc-aarch64-linux-gnu libc6-dev-i386 - name: Install protoc id: deps-protoc From 9e9fd2d0c814589ba40386f7e59a6e5a864c3a93 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 03:28:12 +0700 Subject: [PATCH 16/26] Debug dpkg -l --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b7e1bfa..35b945d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,7 +15,7 @@ jobs: - uses: actions/checkout@v4 - name: Install dependencies - run: sudo apt-get install -y build-essential pkg-config libssl-dev clang cmake llvm g++-aarch64-linux-gnu gcc-aarch64-linux-gnu libc6-dev-i386 + run: sudo apt-get install -y build-essential pkg-config libssl-dev clang cmake llvm g++-aarch64-linux-gnu gcc-aarch64-linux-gnu libc6-dev-i386 && dpkg -l - name: Install protoc id: deps-protoc From 6916c0a78bdc49709953c9d2ad1b50c5ddc41345 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 03:51:39 +0700 Subject: [PATCH 17/26] Add g++-multilib --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 35b945d..513987c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,7 +15,7 @@ jobs: - uses: actions/checkout@v4 - name: Install dependencies - run: sudo apt-get install -y build-essential pkg-config libssl-dev clang cmake llvm g++-aarch64-linux-gnu gcc-aarch64-linux-gnu libc6-dev-i386 && dpkg -l + run: sudo apt-get install -y build-essential pkg-config libssl-dev clang cmake llvm g++-aarch64-linux-gnu gcc-aarch64-linux-gnu libc6-dev-i386 g++-multilib && dpkg -l - name: Install protoc id: deps-protoc From 5994c0fbd350887e62a2da0a5d59eba2a1852ddd Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 03:53:38 +0700 Subject: [PATCH 18/26] Upgrade runner to on 24.04 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 513987c..3249f11 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,7 +9,7 @@ on: jobs: build_linux: name: Build Linux - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 30 steps: - uses: actions/checkout@v4 From d9e28728279eb04fd7c6419bfc70869ea4f328cb Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 03:57:03 +0700 Subject: [PATCH 19/26] Add both g++ and gcc multilibs --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3249f11..bdbb197 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,7 +15,7 @@ jobs: - uses: actions/checkout@v4 - name: Install dependencies - run: sudo apt-get install -y build-essential pkg-config libssl-dev clang cmake llvm g++-aarch64-linux-gnu gcc-aarch64-linux-gnu libc6-dev-i386 g++-multilib && dpkg -l + run: sudo apt-get install -y build-essential pkg-config libssl-dev clang cmake llvm g++-aarch64-linux-gnu gcc-aarch64-linux-gnu libc6-dev-i386 g++-13-multilib gcc-13-multilib && dpkg -l - name: Install protoc id: deps-protoc From 42cfb7b12296859a12ee614776b0ff6381209302 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 04:14:28 +0700 Subject: [PATCH 20/26] Simultaneous builds for linux --- .github/workflows/build.yml | 44 ++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bdbb197..924ae29 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,7 +7,7 @@ on: - master jobs: - build_linux: + build_linux_x86_64: name: Build Linux runs-on: ubuntu-24.04 timeout-minutes: 30 @@ -15,7 +15,7 @@ jobs: - uses: actions/checkout@v4 - name: Install dependencies - run: sudo apt-get install -y build-essential pkg-config libssl-dev clang cmake llvm g++-aarch64-linux-gnu gcc-aarch64-linux-gnu libc6-dev-i386 g++-13-multilib gcc-13-multilib && dpkg -l + run: sudo apt-get install -y build-essential pkg-config libssl-dev clang cmake llvm - name: Install protoc id: deps-protoc @@ -28,7 +28,7 @@ jobs: export PATH="${PATH}:${HOME}/.local/bin" - name: Add Rust targets - run: rustup target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu + run: rustup target add x86_64-unknown-linux-gnu - name: Create Cargo multiarch config run: | @@ -36,18 +36,46 @@ jobs: echo " [target.x86_64-unknown-linux-gnu] linker = \"x86_64-linux-gnu-gcc\" - - [target.aarch64-unknown-linux-gnu] - linker = \"aarch64-linux-gnu-gcc\" " > ~/.cargo/config.toml - name: Build for Linux x86 run: cargo build -r --target=x86_64-unknown-linux-gnu --verbose && mv target/x86_64-unknown-linux-gnu/release/platform-cli ./platform-cli-gnu-x86_64 + build_linux_arm64: + name: Build Linux + runs-on: ubuntu-24.04 + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + + - name: Install dependencies + run: sudo apt-get install -y build-essential pkg-config libssl-dev clang cmake llvm g++-aarch64-linux-gnu gcc-aarch64-linux-gnu libc6-dev-i386 g++-13-multilib gcc-13-multilib && dpkg -l + + - name: Install protoc + id: deps-protoc + shell: bash + run: | + curl -Lo /tmp/protoc.zip \ + "https://github.com/protocolbuffers/protobuf/releases/download/v27.3/protoc-27.3-linux-aarch64.zip" + unzip -o /tmp/protoc.zip -d ${HOME}/.local + echo "PROTOC=${HOME}/.local/bin/protoc" >> $GITHUB_ENV + export PATH="${PATH}:${HOME}/.local/bin" + + - name: Add Rust targets + run: rustup target add aarch64-unknown-linux-gnu + + - name: Create Cargo multiarch config + run: | + touch ~/.cargo/config.toml + echo " + [target.aarch64-unknown-linux-gnu] + linker = \"aarch64-linux-gnu-gcc\" + " > ~/.cargo/config.toml + - name: Build for Linux arm64 run: cargo build -r --target=aarch64-unknown-linux-gnu --verbose && mv target/unknown-linux-gnu/release/platform-cli ./platform-cli-gnu-arm64 - build_max_x86_64: + build_mac_x86_64: name: Build Apple (x86_64) runs-on: macos-13 timeout-minutes: 30 @@ -63,7 +91,7 @@ jobs: - name: Build for Apple x86 run: cargo build -r --target=x86_64-apple-darwin --verbose && mv target/x86_64-apple-darwin/release/platform-cli ./platform-cli_darwin-x86_64 - build_max_arm64: + build_mac_arm64: name: Build Apple (arm64) runs-on: macos-15 timeout-minutes: 30 From 90723fe3e8b42813bd1f939157eb72f0c9b31683 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 04:22:03 +0700 Subject: [PATCH 21/26] Bump protoc version --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 924ae29..ea8e981 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,7 +22,7 @@ jobs: shell: bash run: | curl -Lo /tmp/protoc.zip \ - "https://github.com/protocolbuffers/protobuf/releases/download/v27.3/protoc-27.3-linux-x86_64.zip" + "https://github.com/protocolbuffers/protobuf/releases/download/v28.2/protoc-28.2-linux-x86_64.zip" unzip -o /tmp/protoc.zip -d ${HOME}/.local echo "PROTOC=${HOME}/.local/bin/protoc" >> $GITHUB_ENV export PATH="${PATH}:${HOME}/.local/bin" @@ -56,7 +56,7 @@ jobs: shell: bash run: | curl -Lo /tmp/protoc.zip \ - "https://github.com/protocolbuffers/protobuf/releases/download/v27.3/protoc-27.3-linux-aarch64.zip" + "https://github.com/protocolbuffers/protobuf/releases/download/v28.2/protoc-28.2-linux-aarch_64.zip" unzip -o /tmp/protoc.zip -d ${HOME}/.local echo "PROTOC=${HOME}/.local/bin/protoc" >> $GITHUB_ENV export PATH="${PATH}:${HOME}/.local/bin" From a667951129c7c4dd36ea4e10b939f402193612a1 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 13:25:31 +0700 Subject: [PATCH 22/26] Disable linux arm64 builds --- .github/workflows/build.yml | 34 ---------------------------------- 1 file changed, 34 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ea8e981..489dcee 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,40 +7,6 @@ on: - master jobs: - build_linux_x86_64: - name: Build Linux - runs-on: ubuntu-24.04 - timeout-minutes: 30 - steps: - - uses: actions/checkout@v4 - - - name: Install dependencies - run: sudo apt-get install -y build-essential pkg-config libssl-dev clang cmake llvm - - - name: Install protoc - id: deps-protoc - shell: bash - run: | - curl -Lo /tmp/protoc.zip \ - "https://github.com/protocolbuffers/protobuf/releases/download/v28.2/protoc-28.2-linux-x86_64.zip" - unzip -o /tmp/protoc.zip -d ${HOME}/.local - echo "PROTOC=${HOME}/.local/bin/protoc" >> $GITHUB_ENV - export PATH="${PATH}:${HOME}/.local/bin" - - - name: Add Rust targets - run: rustup target add x86_64-unknown-linux-gnu - - - name: Create Cargo multiarch config - run: | - touch ~/.cargo/config.toml - echo " - [target.x86_64-unknown-linux-gnu] - linker = \"x86_64-linux-gnu-gcc\" - " > ~/.cargo/config.toml - - - name: Build for Linux x86 - run: cargo build -r --target=x86_64-unknown-linux-gnu --verbose && mv target/x86_64-unknown-linux-gnu/release/platform-cli ./platform-cli-gnu-x86_64 - build_linux_arm64: name: Build Linux runs-on: ubuntu-24.04 From 3d9e646b595538016352efec71ffd6635d0e6e41 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 13:28:04 +0700 Subject: [PATCH 23/26] Disable linux arm64 builds --- .github/workflows/build.yml | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 489dcee..0f12155 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,39 +7,31 @@ on: - master jobs: - build_linux_arm64: - name: Build Linux + build_linux_x86_64: + name: Build Linux (x86_64) runs-on: ubuntu-24.04 timeout-minutes: 30 steps: - uses: actions/checkout@v4 - name: Install dependencies - run: sudo apt-get install -y build-essential pkg-config libssl-dev clang cmake llvm g++-aarch64-linux-gnu gcc-aarch64-linux-gnu libc6-dev-i386 g++-13-multilib gcc-13-multilib && dpkg -l + run: sudo apt-get install -y build-essential pkg-config libssl-dev clang cmake llvm - name: Install protoc id: deps-protoc shell: bash run: | curl -Lo /tmp/protoc.zip \ - "https://github.com/protocolbuffers/protobuf/releases/download/v28.2/protoc-28.2-linux-aarch_64.zip" + "https://github.com/protocolbuffers/protobuf/releases/download/v28.2/protoc-28.2-linux-x86_64.zip" unzip -o /tmp/protoc.zip -d ${HOME}/.local echo "PROTOC=${HOME}/.local/bin/protoc" >> $GITHUB_ENV export PATH="${PATH}:${HOME}/.local/bin" - name: Add Rust targets - run: rustup target add aarch64-unknown-linux-gnu + run: rustup target add x86_64-unknown-linux-gnu - - name: Create Cargo multiarch config - run: | - touch ~/.cargo/config.toml - echo " - [target.aarch64-unknown-linux-gnu] - linker = \"aarch64-linux-gnu-gcc\" - " > ~/.cargo/config.toml - - - name: Build for Linux arm64 - run: cargo build -r --target=aarch64-unknown-linux-gnu --verbose && mv target/unknown-linux-gnu/release/platform-cli ./platform-cli-gnu-arm64 + - name: Build for Linux x86 + run: cargo build -r --target=x86_64-unknown-linux-gnu --verbose && mv target/x86_64-unknown-linux-gnu/release/platform-cli ./platform-cli-gnu-x86_64 build_mac_x86_64: name: Build Apple (x86_64) From 00ac1b83ca5ed4fcd8fe6e81d76d1357add7ca19 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 13:46:20 +0700 Subject: [PATCH 24/26] Convert to workflow_dispatch published --- .github/workflows/release.yml | 61 ++++++++++++++++++++++++++--------- 1 file changed, 46 insertions(+), 15 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 41fe6cc..b71f107 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,45 +7,76 @@ on: - published jobs: - test: - name: Build - runs-on: ubuntu-22.04 - timeout-minutes: 60 + build_linux_x86_64: + name: Build Linux (x86_64) + runs-on: ubuntu-24.04 + timeout-minutes: 30 steps: - uses: actions/checkout@v4 + - name: Install dependencies + run: sudo apt-get install -y build-essential pkg-config libssl-dev clang cmake llvm + - name: Install protoc id: deps-protoc shell: bash run: | curl -Lo /tmp/protoc.zip \ - "https://github.com/protocolbuffers/protobuf/releases/download/v27.3/protoc-27.3-linux-x86_64.zip" + "https://github.com/protocolbuffers/protobuf/releases/download/v28.2/protoc-28.2-linux-x86_64.zip" unzip -o /tmp/protoc.zip -d ${HOME}/.local echo "PROTOC=${HOME}/.local/bin/protoc" >> $GITHUB_ENV export PATH="${PATH}:${HOME}/.local/bin" - - name: Install dependencies - run: sudo apt-get install -y gcc-aarch64-linux-gnu - - name: Add Rust targets - run: rustup target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu x86_64-apple-darwin aarch64-apple-darwin + run: rustup target add x86_64-unknown-linux-gnu - name: Build for Linux x86 run: cargo build -r --target=x86_64-unknown-linux-gnu --verbose && mv target/x86_64-unknown-linux-gnu/release/platform-cli ./platform-cli-gnu-x86_64 - - name: Build for Linux arm64 - run: cargo build -r --target=aarch64-unknown-linux-gnu --verbose && mv target/unknown-linux-gnu/release/platform-cli ./platform-cli-gnu-arm64 + - uses: softprops/action-gh-release@v2 + with: + files: | + platform-cli_gnu-x86_64 + + build_mac_x86_64: + name: Build Apple (x86_64) + runs-on: macos-13 + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + + - name: Add Rust targets + run: brew install llvm protobuf + + - name: Add Rust targets + run: rustup target add x86_64-apple-darwin - name: Build for Apple x86 run: cargo build -r --target=x86_64-apple-darwin --verbose && mv target/x86_64-apple-darwin/release/platform-cli ./platform-cli_darwin-x86_64 + - uses: softprops/action-gh-release@v2 + with: + files: | + platform-cli_darwin-x86_64 + + build_mac_arm64: + name: Build Apple (arm64) + runs-on: macos-15 + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + + - name: Add Rust targets + run: brew install llvm protobuf + + - name: Add Rust targets + run: rustup target add aarch64-apple-darwin + - name: Build for Apple Silicon run: cargo build -r --target=aarch64-apple-darwin --verbose && mv target/aarch64-apple-darwin/release/platform-cli ./platform-cli_darwin-arm64 - uses: softprops/action-gh-release@v2 with: files: | - platform-cli_gnu-x86_64 - platform-cli-gnu-arm64 - platform-cli_darwin-x86_64 - platform-cli_darwin-arm64 \ No newline at end of file + platform-cli_darwin-arm64 + From 314f948284497131db336fd54f9148c1b8b16ce0 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 13:51:21 +0700 Subject: [PATCH 25/26] Leave straight build in build.yml --- .github/workflows/build.yml | 51 +++++-------------------------------- 1 file changed, 6 insertions(+), 45 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0f12155..93e17c4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,61 +7,22 @@ on: - master jobs: - build_linux_x86_64: - name: Build Linux (x86_64) - runs-on: ubuntu-24.04 + test: + name: Build + runs-on: ubuntu-22.04 timeout-minutes: 30 steps: - uses: actions/checkout@v4 - - name: Install dependencies - run: sudo apt-get install -y build-essential pkg-config libssl-dev clang cmake llvm - - name: Install protoc id: deps-protoc shell: bash run: | curl -Lo /tmp/protoc.zip \ - "https://github.com/protocolbuffers/protobuf/releases/download/v28.2/protoc-28.2-linux-x86_64.zip" + "https://github.com/protocolbuffers/protobuf/releases/download/v28.2 unzip -o /tmp/protoc.zip -d ${HOME}/.local echo "PROTOC=${HOME}/.local/bin/protoc" >> $GITHUB_ENV export PATH="${PATH}:${HOME}/.local/bin" - - name: Add Rust targets - run: rustup target add x86_64-unknown-linux-gnu - - - name: Build for Linux x86 - run: cargo build -r --target=x86_64-unknown-linux-gnu --verbose && mv target/x86_64-unknown-linux-gnu/release/platform-cli ./platform-cli-gnu-x86_64 - - build_mac_x86_64: - name: Build Apple (x86_64) - runs-on: macos-13 - timeout-minutes: 30 - steps: - - uses: actions/checkout@v4 - - - name: Add Rust targets - run: brew install llvm protobuf - - - name: Add Rust targets - run: rustup target add x86_64-apple-darwin - - - name: Build for Apple x86 - run: cargo build -r --target=x86_64-apple-darwin --verbose && mv target/x86_64-apple-darwin/release/platform-cli ./platform-cli_darwin-x86_64 - - build_mac_arm64: - name: Build Apple (arm64) - runs-on: macos-15 - timeout-minutes: 30 - steps: - - uses: actions/checkout@v4 - - - name: Add Rust targets - run: brew install llvm protobuf - - - name: Add Rust targets - run: rustup target add aarch64-apple-darwin - - - name: Build for Apple Silicon - run: cargo build -r --target=aarch64-apple-darwin --verbose && mv target/aarch64-apple-darwin/release/platform-cli ./platform-cli_darwin-arm64 - + - name: Build + run: cargo build --verbose \ No newline at end of file From 16f515aea8b93df395c041a0c8406aebf291dc87 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Fri, 18 Oct 2024 14:22:18 +0700 Subject: [PATCH 26/26] Fix protoc url string --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 93e17c4..4b2df2f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,7 +19,7 @@ jobs: shell: bash run: | curl -Lo /tmp/protoc.zip \ - "https://github.com/protocolbuffers/protobuf/releases/download/v28.2 + "https://github.com/protocolbuffers/protobuf/releases/download/v28.2/protoc-28.2-linux-x86_64.zip" unzip -o /tmp/protoc.zip -d ${HOME}/.local echo "PROTOC=${HOME}/.local/bin/protoc" >> $GITHUB_ENV export PATH="${PATH}:${HOME}/.local/bin"