Skip to content

Commit

Permalink
use cargo cross
Browse files Browse the repository at this point in the history
The problems I had using podman were resolved by realizing that ubuntu-latest
does not actually mean the latest version of Ubuntu (for now) so explicitly
stating the Ubuntu version, installing podman works fine and can build binaries
for Raspberry Pi properly.
  • Loading branch information
Johann150 committed Feb 6, 2021
1 parent cd821a3 commit 3089a40
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 18 deletions.
8 changes: 0 additions & 8 deletions .cargo/config

This file was deleted.

14 changes: 8 additions & 6 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
upload_url: ${{ steps.create_release.outputs.upload_url }}

build_ubuntu:
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
needs: create_release
steps:
- uses: actions/checkout@v1
Expand Down Expand Up @@ -73,19 +73,21 @@ jobs:
needs: create_release
steps:
- uses: actions/checkout@v1
- run: rustc -Vv
- name: Build
run: cargo build --verbose --release
- name: strip names
run: strip target/release/agate.exe
- name: compress
run: gzip -c target/release/agate.exe > ./agate.exe.gz
- name: upload release asset win
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_name: agate.x86_64-pc-windows-msvc.exe
# TODO: this one is not zipped and not stripped
asset_path: target/release/agate.exe
asset_content_type: application/vnd.microsoft.portable-executable
asset_name: agate.x86_64-pc-windows-msvc.exe.gz
asset_path: agate.exe.gz
asset_content_type: application/gzip

build_macos:
runs-on: macos-latest
Expand Down
2 changes: 2 additions & 0 deletions Cross.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[target.arm-unknown-linux-gnueabihf]
image = "zenria/cross:arm-rpi-4.9.3-linux-gnueabihf"
8 changes: 4 additions & 4 deletions release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ set -e

# Cross-compiling needs a linker for the respective platforms. If you are on a Debian-based x86_64 Linux,
# you can install them with:
sudo apt -y install gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu
sudo apt -y install podman gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu
# Also install cross compilation tool for cargo
cargo install cross

for i in x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu arm-unknown-linux-gnueabihf armv7-unknown-linux-gnueabihf
do
# Make sure the cross-compiled std crate is available.
rustup target add $i
cargo build --verbose --release --target $i
cross build --verbose --release --target $i
cp target/$i/release/agate agate.$i
done

Expand Down

0 comments on commit 3089a40

Please sign in to comment.