Skip to content

Commit

Permalink
wip: Attempt compiling all targets
Browse files Browse the repository at this point in the history
  • Loading branch information
timgremore committed Jun 11, 2024
1 parent 550ff8e commit 07103b6
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 9 deletions.
57 changes: 49 additions & 8 deletions .github/workflows/rustler_precompiled.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,21 @@
name: Build precompiled NIFs

env:
NIF_DIRECTORY: "native/edix_nif"

on:
push:
branches:
- main
tags:
- '*'

defaults:
run:
# Sets the working dir for "run" scripts.
# Note that this won't change the directory for actions (tasks with "uses").
working-directory: "./native/edix_nif"

jobs:
build_release:
name: NIF ${{ matrix.nif }} - ${{ matrix.job.target }} (${{ matrix.job.os }})
Expand All @@ -18,38 +27,70 @@ jobs:
job:
- { target: aarch64-apple-darwin , os: macos-11 }
- { target: aarch64-unknown-linux-gnu , os: ubuntu-20.04 , use-cross: true }
# - { target: aarch64-unknown-linux-musl , os: ubuntu-20.04 , use-cross: true }
- { target: aarch64-unknown-linux-musl , os: ubuntu-20.04 , use-cross: true }
- { target: arm-unknown-linux-gnueabihf , os: ubuntu-20.04 , use-cross: true }
- { target: riscv64gc-unknown-linux-gnu , os: ubuntu-20.04 , use-cross: true }
- { target: x86_64-apple-darwin , os: macos-11 }
# - { target: x86_64-pc-windows-gnu , os: windows-2019 }
# - { target: x86_64-pc-windows-msvc , os: windows-2019 }
- { target: x86_64-pc-windows-gnu , os: windows-2019 }
- { target: x86_64-pc-windows-msvc , os: windows-2019 }
- { target: x86_64-unknown-linux-gnu , os: ubuntu-20.04 }
# - { target: x86_64-unknown-linux-musl , os: ubuntu-20.04 , use-cross: true }
- { target: x86_64-unknown-linux-musl , os: ubuntu-20.04 , use-cross: true }

steps:
- name: Checkout source code
uses: actions/checkout@v4

- name: Install rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install prerequisites
shell: bash
run: |
case ${{ matrix.job.target }} in
arm-unknown-linux-*) sudo apt-get -y update ; sudo apt-get -y install gcc-arm-linux-gnueabihf ;;
aarch64-unknown-linux-*) sudo apt-get -y update ; sudo apt-get -y install gcc-aarch64-linux-gnu ;;
esac
- name: Extract project version
shell: bash
run: |
# Get the project version from mix.exs
echo "PROJECT_VERSION=$(sed -n 's/^ @version "\(.*\)"/\1/p' mix.exs | head -n1)" >> $GITHUB_ENV
# - name: Install Rust toolchain
# uses: dtolnay/rust-toolchain@stable
# with:
# toolchain: stable
# target: ${{ matrix.job.target }}

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: ${{ matrix.job.target }}
override: true
profile: minimal

- name: Download cross from GitHub releases
uses: giantswarm/[email protected]
if: ${{ matrix.job.use-cross && matrix.job.target != 'aarch64-unknown-linux-musl' }}
with:
binary: "cross"
version: "v0.2.1"
download_url: "https://github.com/rust-embedded/cross/releases/download/${version}/cross-${version}-x86_64-unknown-linux-gnu.tar.gz"
tarball_binary_path: "${binary}"
smoke_test: "${binary} --version"

- name: Install cross from GitHub
if: ${{ matrix.job.use-cross && matrix.job.target == 'aarch64-unknown-linux-musl' }}
shell: bash
run: |
cargo install --git https://github.com/cross-rs/cross --rev 4deac830a4992a70f7cb070eda38d5ff7cfcbf86 || echo 'Already installed'
# - name: Install musl-tools
# if: ${{ matrix.job.use-cross }}
# shell: bash
# env:
# RUSTFLAGS: "-C target-feature=-crt-static"
# run: |
# apt-get update && apt-get install musl-tools -y && rustup target add x86_64-unknown-linux-musl && rustup target add aarch64-unknown-linux-musl
# sudo apt-get update && sudo apt-get install musl-tools -y && rustup target add x86_64-unknown-linux-musl && rustup target add aarch64-unknown-linux-musl

- name: Build the project
id: build-crate
Expand Down
2 changes: 1 addition & 1 deletion checksum-Elixir.Edix.Parser.exs
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
%{
"libedix_parser-v0.1.7-nif-2.15-aarch64-apple-darwin.so.tar.gz" => "sha256:c2f98407789ee0ce85b79afa22d25b7469e0a3c08732a0ce7083f83e2adbc052",
"libedix_parser-v0.1.9-nif-2.15-aarch64-apple-darwin.so.tar.gz" => "sha256:a77db573b79f79f53023a6e7594b0e10f1eda2780be6c5d16ac318993fd3faae",
}
Empty file added native/edix_nif/ci.txt
Empty file.

0 comments on commit 07103b6

Please sign in to comment.