Skip to content

Commit

Permalink
Test linux builds
Browse files Browse the repository at this point in the history
  • Loading branch information
muzuke committed Jul 14, 2023
1 parent 2a24fad commit 00f4a22
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 85 deletions.
169 changes: 85 additions & 84 deletions .github/workflows/build-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
- develop
- main
- kotlin-deploy
- DO-1622-split-ci

jobs:
build:
Expand All @@ -20,8 +21,8 @@ jobs:
- crate: radix-engine-toolkit
target-triple: x86_64-unknown-linux-gnu
custom-linker: x86_64-unknown-linux-gnu-gcc
custom-compiler: /usr/local/opt/llvm/bin/clang
custom-archiver: /usr/local/opt/llvm/bin/llvm-ar
# custom-compiler: /usr/local/opt/llvm/bin/clang
# custom-archiver: /usr/local/opt/llvm/bin/llvm-ar
- crate: radix-engine-toolkit
target-triple: aarch64-unknown-linux-gnu
custom-linker: aarch64-unknown-linux-gnu-gcc
Expand All @@ -30,115 +31,115 @@ jobs:
- crate: radix-engine-toolkit
target-triple: wasm32-unknown-unknown
custom-linker: ""
custom-compiler: /usr/local/opt/llvm/bin/clang
custom-archiver: /usr/local/opt/llvm/bin/llvm-ar
- crate: radix-engine-toolkit
target-triple: aarch64-linux-android
custom-linker: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang
custom-compiler: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang
custom-archiver: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar
- crate: radix-engine-toolkit
target-triple: armv7-linux-androideabi
custom-linker: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi19-clang
custom-compiler: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi19-clang
custom-archiver: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar
# custom-compiler: /usr/local/opt/llvm/bin/clang
# custom-archiver: /usr/local/opt/llvm/bin/llvm-ar
# - crate: radix-engine-toolkit
# target-triple: aarch64-linux-android
# custom-linker: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang
# custom-compiler: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang
# custom-archiver: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar
# - crate: radix-engine-toolkit
# target-triple: armv7-linux-androideabi
# custom-linker: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi19-clang
# custom-compiler: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi19-clang
# custom-archiver: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar
# radix-engine-toolkit-uniffi Crate
- crate: radix-engine-toolkit-uniffi
target-triple: x86_64-unknown-linux-gnu
custom-linker: x86_64-unknown-linux-gnu-gcc
custom-compiler: /usr/local/opt/llvm/bin/clang
custom-archiver: /usr/local/opt/llvm/bin/llvm-ar
# custom-compiler: /usr/local/opt/llvm/bin/clang
# custom-archiver: /usr/local/opt/llvm/bin/llvm-ar
- crate: radix-engine-toolkit-uniffi
target-triple: aarch64-unknown-linux-gnu
custom-linker: aarch64-unknown-linux-gnu-gcc
custom-compiler: aarch64-unknown-linux-gnu-gcc
custom-archiver: aarch64-unknown-linux-gnu-gcc-ar
- crate: radix-engine-toolkit-uniffi
target-triple: aarch64-linux-android
custom-linker: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang
custom-compiler: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang
custom-archiver: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar
- crate: radix-engine-toolkit-uniffi
target-triple: armv7-linux-androideabi
custom-linker: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi19-clang
custom-compiler: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi19-clang
custom-archiver: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar
# - crate: radix-engine-toolkit-uniffi
# target-triple: aarch64-linux-android
# custom-linker: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang
# custom-compiler: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang
# custom-archiver: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar
# - crate: radix-engine-toolkit-uniffi
# target-triple: armv7-linux-androideabi
# custom-linker: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi19-clang
# custom-compiler: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi19-clang
# custom-archiver: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar

steps:
- uses: FranzDiebold/github-env-vars-action@v2
- name: Checkout
uses: actions/checkout@v3

# - name: Install Rust Toolchain
# run: |
# curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o rustup.sh
# chmod +x rustup.sh
# ./rustup.sh -y
# rustup update
# rustup toolchain install nightly
- name: Install Rust Toolchain
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o rustup.sh
chmod +x rustup.sh
./rustup.sh -y
rustup update
rustup toolchain install nightly
# - name: Install Rust Targets
# run: |
# rustup target install ${{ matrix.build-target.target-triple }}
# rustup +nightly target install ${{ matrix.build-target.target-triple }}
# rustup component add rust-src --toolchain nightly-x86_64-apple-darwin
- name: Install Rust Targets
run: |
rustup target install ${{ matrix.build-target.target-triple }}
rustup +nightly target install ${{ matrix.build-target.target-triple }}
rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu
# - name: Building Toolkit
# run: |
# (
# export CURRENT_DIRECTORY=$(pwd)
# export CRATE_PATH="$CURRENT_DIRECTORY/${{matrix.build-target.crate}}"
# cd $CRATE_PATH
- name: Building Toolkit
run: |
(
export CURRENT_DIRECTORY=$(pwd)
export CRATE_PATH="$CURRENT_DIRECTORY/${{matrix.build-target.crate}}"
cd $CRATE_PATH
# export LINKER_ENVIRONMENT_VARIABLE="CARGO_TARGET_"$(echo ${{ matrix.build-target.target-triple }} | tr '[:lower:]' '[:upper:]' | sed 's/-/_/g')"_LINKER"
# if [ ! -z "${{ matrix.build-target.custom-linker }}" ]
# then
# export $LINKER_ENVIRONMENT_VARIABLE=${{ matrix.build-target.custom-linker }}
# fi
export LINKER_ENVIRONMENT_VARIABLE="CARGO_TARGET_"$(echo ${{ matrix.build-target.target-triple }} | tr '[:lower:]' '[:upper:]' | sed 's/-/_/g')"_LINKER"
if [ ! -z "${{ matrix.build-target.custom-linker }}" ]
then
export $LINKER_ENVIRONMENT_VARIABLE=${{ matrix.build-target.custom-linker }}
fi
# export CC=${{ matrix.build-target.custom-compiler }}
# export AR=${{ matrix.build-target.custom-archiver }}
export CC=${{ matrix.build-target.custom-compiler }}
export AR=${{ matrix.build-target.custom-archiver }}
# cargo +nightly build \
# -Z build-std=std,panic_abort \
# -Z build-std-features=panic_immediate_abort \
# --target ${{ matrix.build-target.target-triple }} \
# --release
cargo +nightly build \
-Z build-std=std,panic_abort \
-Z build-std-features=panic_immediate_abort \
--target ${{ matrix.build-target.target-triple }} \
--release
# unset $LINKER_ENVIRONMENT_VARIABLE
# export CC="/usr/local/opt/llvm/bin/clang"
# export AR="/usr/local/opt/llvm/bin/llvm-ar"
unset $LINKER_ENVIRONMENT_VARIABLE
# export CC="/usr/local/opt/llvm/bin/clang"
# export AR="/usr/local/opt/llvm/bin/llvm-ar"
# if [ "${{matrix.build-target.crate}}" == "radix-engine-toolkit" ]; then
# INCLUDE_DIRECTORY_PATH="$CRATE_PATH/target/${{ matrix.build-target.target-triple }}/release/include"
# mkdir $INCLUDE_DIRECTORY_PATH
if [ "${{matrix.build-target.crate}}" == "radix-engine-toolkit" ]; then
INCLUDE_DIRECTORY_PATH="$CRATE_PATH/target/${{ matrix.build-target.target-triple }}/release/include"
mkdir $INCLUDE_DIRECTORY_PATH
# rustup default nightly
# cbindgen \
# --lang c \
# --config cbindgen.toml \
# --output "$INCLUDE_DIRECTORY_PATH/libradix_engine_toolkit.h"
# rustup default stable
rustup default nightly
cbindgen \
--lang c \
--config cbindgen.toml \
--output "$INCLUDE_DIRECTORY_PATH/libradix_engine_toolkit.h"
rustup default stable
# echo "module RadixEngineToolkit {" > "$INCLUDE_DIRECTORY_PATH/module.modulemap"
# echo " umbrella header \"libradix_engine_toolkit.h\"" >> "$INCLUDE_DIRECTORY_PATH/module.modulemap"
# echo " export *" >> "$INCLUDE_DIRECTORY_PATH/module.modulemap"
# echo "}" >> "$INCLUDE_DIRECTORY_PATH/module.modulemap"
# fi
echo "module RadixEngineToolkit {" > "$INCLUDE_DIRECTORY_PATH/module.modulemap"
echo " umbrella header \"libradix_engine_toolkit.h\"" >> "$INCLUDE_DIRECTORY_PATH/module.modulemap"
echo " export *" >> "$INCLUDE_DIRECTORY_PATH/module.modulemap"
echo "}" >> "$INCLUDE_DIRECTORY_PATH/module.modulemap"
fi
# (
# BUILD_PATH="$CRATE_PATH/target/${{ matrix.build-target.target-triple }}/release"
# cd $BUILD_PATH
(
BUILD_PATH="$CRATE_PATH/target/${{ matrix.build-target.target-triple }}/release"
cd $BUILD_PATH
# BUILD_ARTIFACTS_PATH=$(find . -type f \( -name "*.a" -o -name "*.dylib" -o -name "*.dll" -o -name "*.so" -o -name "*.d" -o -name "*.wasm" \) -maxdepth 1)
BUILD_ARTIFACTS_PATH=$(find . -type f \( -name "*.a" -o -name "*.dylib" -o -name "*.dll" -o -name "*.so" -o -name "*.d" -o -name "*.wasm" \) -maxdepth 1)
# if [ "${{matrix.build-target.crate}}" == "radix-engine-toolkit" ]; then
# tar -czf "./${{ matrix.build-target.target-triple }}.tar.gz" $BUILD_ARTIFACTS_PATH ./include
# else
# tar -czf "./${{ matrix.build-target.target-triple }}.tar.gz" $BUILD_ARTIFACTS_PATH
# fi
# )
# )
if [ "${{matrix.build-target.crate}}" == "radix-engine-toolkit" ]; then
tar -czf "./${{ matrix.build-target.target-triple }}.tar.gz" $BUILD_ARTIFACTS_PATH ./include
else
tar -czf "./${{ matrix.build-target.target-triple }}.tar.gz" $BUILD_ARTIFACTS_PATH
fi
)
)
# - name: Upload Build Artifacts
# uses: actions/upload-artifact@v3
Expand Down