Repository: skytable/skytable (language: rust)

Issue:
Infra: Resume ARM builds
Since 0.7.5 there are no longer any ARM builds for Linux or macOS, would be very nice to get that set up again if possible.

Example of useful build targets that's missing right now:

- M1/M2 Apple Silicon (Macbook, mac mini..)
- Linux ARM (Thinking Raspberry PI)
- Bonus: Windows ARM (Surface)
Rasberry Pi Build
Hi, I have a Rasberry Pi 3 Model B (Not B+, just B). I really like skytable because it is really fast, and I have been working on a server on my mac (Intel, x86_64 build) and it has been working great. When trying to transfer it to the Pi, I realized I had to change the skytable tools - but there was no build that supported the Pi (armhf). Is there a working build that would work, or if not, how would I go about building it myself?


Discussion / hints:
This should be done. I'm currently deep inside engine code (v2) but should be able to get this done soon. Sorry for the delay!
Hello, any update on this? Would be very awesome to have. Our docker cluster is running on ARM machines on AWS...
Install aarch64 system on RPI-3B
I have BPI-W2 and aarch64 works fine
You can build it manually on an RPI. We currently don't build ARM64 on CI, but we'll likely try and get it back (also see #298)

Fix patch:
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 98ee3df2..4a6d1ea3 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -15,13 +15,6 @@ jobs:
     runs-on: ${{ matrix.os }}
     strategy:
       matrix:
-        rust:
-          [
-            x86_64-unknown-linux-gnu,
-            x86_64-unknown-linux-musl,
-            x86_64-apple-darwin,
-            x86_64-pc-windows-msvc,
-          ]
         include:
           - rust: x86_64-unknown-linux-gnu
             os: ubuntu-latest
@@ -35,6 +28,12 @@ jobs:
           - rust: x86_64-pc-windows-msvc
             os: windows-latest
             artifact: x86_64-windows
+          - rust: aarch64-unknown-linux-gnu
+            os: [self-hosted, ARM64]
+            artifact: arm64-linux-gnu
+          - rust: aarch64-apple-darwin
+            os: macos-14
+            artifact: arm64-macos
     env:
       RUST_BACKTRACE: 1
       TARGET: ${{ matrix.rust }}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f50edf1f..4c370b4d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -31,6 +31,8 @@ All changes in this project will be noted in this file.
 ### Platform notes
 
 - 32-bit Windows (MSVC) has been downgraded to a Tier-2 platform and will likely be deprecated in the future
+- Linux ARM64 is now a Tier-1 platform
+- macOS ARM64 is a now a Tier-1X platform
 
 ## Version 0.8.1
 
diff --git a/harness/src/diagnostics.rs b/harness/src/diagnostics.rs
index a73a6fc5..b51fe494 100644
--- a/harness/src/diagnostics.rs
+++ b/harness/src/diagnostics.rs
@@ -26,11 +26,13 @@
 
 use crate::util;
 
-const OFFICIAL_TARGETS: [&str; 4] = [
-    "i686-unknown-linux-gnu",
-    "x86_64-apple-darwin",
-    "x86_64-pc-windows-msvc",
-    "x86_64-unknown-linux-gnu",
+const OFFICIAL_TARGETS: [&str; 6] = [
+    "i686-unknown-linux-gnu",    // GNU Linux x86
+    "x86_64-apple-darwin",       // macOS x86_64
+    "x86_64-pc-windows-msvc",    // Windows x86_64
+    "x86_64-unknown-linux-gnu",  // Linux x86_64
+    "aarch64-unknown-linux-gnu", // Linux ARM64
+    "aarch64-apple-darwin",      // macOS ARM64
 ];
 
 const THIS_TARGET: &str = env!("RUSTC_TARGET");


Test patch:
diff --git a/.github/workflows/test-push.yml b/.github/workflows/test-push.yml
index ad13f6ea..3362bb48 100644
--- a/.github/workflows/test-push.yml
+++ b/.github/workflows/test-push.yml
@@ -40,7 +40,6 @@ jobs:
     runs-on: ${{ matrix.os }}
     strategy:
       matrix:
-        os: [ubuntu-latest, macos-latest, windows-latest]
         include:
           - os: ubuntu-latest
             rust: x86_64-unknown-linux-gnu
@@ -48,6 +47,10 @@ jobs:
             rust: x86_64-apple-darwin
           - os: windows-latest
             rust: x86_64-pc-windows-msvc
+          - os: [self-hosted, ARM64]
+            rust: aarch64-unknown-linux-gnu
+          - os: macos-14
+            rust: aarch64-apple-darwin
 
     steps:
       - name: Checkout source code
@@ -90,7 +93,6 @@ jobs:
     runs-on: ${{ matrix.os }}
     strategy:
       matrix:
-        os: [ubuntu-latest]
         include:
           - os: ubuntu-latest
             rust: i686-unknown-linux-gnu
@@ -131,7 +133,6 @@ jobs:
     runs-on: ${{ matrix.os }}
     strategy:
       matrix:
-        os: [ubuntu-latest, windows-latest]
         include:
           - os: ubuntu-latest
             rust: x86_64-unknown-linux-musl