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

Added Linux arm64 builds on CI #4

Merged
merged 9 commits into from
Oct 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ jobs:
export PATH="${PATH}:${HOME}/.local/bin"

- name: Build
run: cargo build --verbose
run: cargo build -r
48 changes: 42 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
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/protoco
unzip -o /tmp/protoc.zip -d ${HOME}/.local
echo "PROTOC=${HOME}/.local/bin/protoc" >> $GITHUB_ENV
export PATH="${PATH}:${HOME}/.local/bin"
Expand All @@ -31,13 +31,50 @@ jobs:
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
run: cargo build -r --target=x86_64-unknown-linux-gnu && mv target/x86_64-unknown-linux-gnu/release/platform-cli ./platform-cli_gnu-x86_64

- uses: softprops/action-gh-release@v2
with:
files: |
platform-cli_gnu-x86_64

build_linux_arm64:
name: Build Linux (arm64)
runs-on: ubuntu-24.04
timeout-minutes: 30
steps:
- uses: actions/checkout@v4

- name: Print arch
run: uname -a

- 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/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

- 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 && mv target/aarch64-unknown-linux-gnu/release/platform-cli ./platform-cli-gnu-arm64

build_mac_x86_64:
name: Build Apple (x86_64)
runs-on: macos-13
Expand All @@ -52,7 +89,7 @@ jobs:
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
run: cargo build -r --target=x86_64-apple-darwin && mv target/x86_64-apple-darwin/release/platform-cli ./platform-cli_darwin-x86_64

- uses: softprops/action-gh-release@v2
with:
Expand All @@ -73,10 +110,9 @@ jobs:
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
run: cargo build -r --target=aarch64-apple-darwin && mv target/aarch64-apple-darwin/release/platform-cli ./platform-cli_darwin-arm64

- uses: softprops/action-gh-release@v2
with:
files: |
platform-cli_darwin-arm64

platform-cli_darwin-arm64
Loading