Comment out un-needed targets #405
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: | |
branches: | |
- release/* | |
- feature/* | |
- develop | |
- main | |
pull_request: | |
branches: | |
- release/* | |
- feature/* | |
- develop | |
- main | |
jobs: | |
build: | |
runs-on: macos-latest | |
continue-on-error: true | |
strategy: | |
matrix: | |
build-target: | |
# radix-engine-toolkit Crate | |
# - crate: radix-engine-toolkit | |
# target-triple: aarch64-apple-darwin | |
# 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: x86_64-apple-ios | |
# 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: x86_64-apple-darwin | |
# 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-apple-ios | |
# 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-apple-ios-sim | |
# 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: x86_64-pc-windows-gnu | |
# custom-linker: "" | |
# custom-compiler: x86_64-w64-mingw32-gcc | |
# custom-archiver: x86_64-w64-mingw32-ar | |
# - 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 | |
# - crate: radix-engine-toolkit | |
# 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 | |
# target-triple: i686-unknown-linux-gnu | |
# custom-linker: i686-unknown-linux-gnu-gcc | |
# custom-compiler: i686-unknown-linux-gnu-gcc | |
# custom-archiver: i686-unknown-linux-gnu-gcc-ar | |
# - 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 | |
# - crate: radix-engine-toolkit | |
# target-triple: i686-linux-android | |
# custom-linker: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/i686-linux-android19-clang | |
# custom-compiler: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/i686-linux-android19-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: aarch64-apple-darwin | |
# custom-linker: "" | |
# custom-compiler: /usr/local/opt/llvm/bin/clang | |
# custom-archiver: /usr/local/opt/llvm/bin/llvm-ar | |
# - crate: radix-engine-toolkit-uniffi | |
# target-triple: x86_64-apple-ios | |
# custom-linker: "" | |
# custom-compiler: /usr/local/opt/llvm/bin/clang | |
# custom-archiver: /usr/local/opt/llvm/bin/llvm-ar | |
- crate: radix-engine-toolkit-uniffi | |
target-triple: x86_64-apple-darwin | |
custom-linker: "" | |
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-apple-ios | |
# custom-linker: "" | |
# 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-apple-ios-sim | |
# custom-linker: "" | |
# custom-compiler: /usr/local/opt/llvm/bin/clang | |
# custom-archiver: /usr/local/opt/llvm/bin/llvm-ar | |
# - crate: radix-engine-toolkit-uniffi | |
# target-triple: x86_64-pc-windows-gnu | |
# custom-linker: "" | |
# custom-compiler: x86_64-w64-mingw32-gcc | |
# custom-archiver: x86_64-w64-mingw32-ar | |
# - 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 | |
# - 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: i686-unknown-linux-gnu | |
# custom-linker: i686-unknown-linux-gnu-gcc | |
# custom-compiler: i686-unknown-linux-gnu-gcc | |
# custom-archiver: i686-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: i686-linux-android | |
# custom-linker: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/i686-linux-android19-clang | |
# custom-compiler: /usr/local/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/i686-linux-android19-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 Build Dependencies | |
run: | | |
brew tap SergioBenitez/osxct | |
brew install llvm | |
brew install x86_64-unknown-linux-gnu | |
brew install mingw-w64 | |
brew install --cask android-ndk | |
brew tap messense/macos-cross-toolchains | |
brew install aarch64-unknown-linux-gnu | |
brew install i686-unknown-linux-gnu | |
- 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: 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 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 | |
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 | |
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 | |
( | |
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) | |
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 | |
with: | |
name: "${{ matrix.build-target.crate }}-${{ matrix.build-target.target-triple }}.tar.gz" | |
path: "./${{matrix.build-target.crate}}/target/${{ matrix.build-target.target-triple }}/release/${{ matrix.build-target.target-triple }}.tar.gz" | |
create-uniffi-bindings: | |
needs: [build] | |
runs-on: macos-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- uses: actions/download-artifact@v3 | |
with: | |
path: artifacts | |
- name: Extracting the Library | |
run: tar -xvzf radix-engine-toolkit-uniffi-x86_64-apple-darwin.tar.gz --directory="extracted" | |
working-directory: artifacts | |
- name: Generate the Bindings | |
run: | | |
cargo run \ | |
--manifest-path="../../uniffi-bindgen/Cargo.toml" -- \ | |
generate ../../radix-engine-toolkit-uniffi/src/radix_engine_toolkit_uniffi.udl \ | |
--language swift \ | |
--out-dir ./output \ | |
--lib-file ./libradix_engine_toolkit_uniffi.a | |
cargo run \ | |
--manifest-path="../../uniffi-bindgen/Cargo.toml" -- \ | |
generate ../../radix-engine-toolkit-uniffi/src/radix_engine_toolkit_uniffi.udl \ | |
--language kotlin \ | |
--out-dir ./output \ | |
--lib-file ./libradix_engine_toolkit_uniffi.a | |
working-directory: artifacts/extracted | |
- name: Compress Artifacts | |
run: | | |
tar -czf "./UniFFI-Bindings.tar.gz" ./output | |
working-directory: artifacts/extracted | |
- name: Upload Bindings | |
uses: actions/upload-artifact@v3 | |
with: | |
name: "UniFFI-Bindings.tar.gz" | |
path: "./artifacts/extracted/UniFFI-Bindings.tar.gz" | |
build-test-kit: | |
needs: [build] | |
runs-on: macos-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Run Generator | |
run: cargo run | |
working-directory: generator | |
- name: Compress Generated | |
run: tar -czf "./test-kit.tar.gz" ./output | |
working-directory: generator | |
- name: Upload Generated Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: "test-kit.tar.gz" | |
path: "./generator/test-kit.tar.gz" | |
publish-csharp-nuget: | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- uses: actions/download-artifact@v3 | |
with: | |
path: artifacts | |
- name: Extract Artifacts | |
working-directory: artifacts | |
run: | | |
mkdir native | |
for d in radix-engine-toolkit-*.tar.gz; do | |
mv ./$d/* ./native/ | |
done | |
cd native | |
for f in *.tar.gz; do | |
fn=`echo "$f" | cut -d'.' -f 1` | |
mkdir "$fn" | |
tar -xvzf "$f" --directory="$fn"; | |
done | |
- name: Setup .NET SDK | |
uses: actions/setup-dotnet@5a3fa01c67e60dba8f95e2878436c7151c4b5f01 | |
with: | |
dotnet-version: 7.0.x | |
- name: Configure Version | |
run: | | |
CI_RUN_NUMBER=${{ github.run_number }} | |
GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD | sed 's/\//-/g') | |
GIT_COMMIT=$(git log -1 --format=%h ) | |
CORE_VERSION=$(cat radix-engine-toolkit-core/Cargo.toml | grep -e '^version' | cut -d'"' -f 2) | |
VERSION_SUFFIX=build.${CI_RUN_NUMBER} | |
VERSION=${CORE_VERSION}-${VERSION_SUFFIX} | |
if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then | |
VERSION=${CORE_VERSION} | |
fi | |
sed -i "s/\(<version>\)[^<>]*\(<\/version>\)/\1$VERSION\2/g" interop/csharp/RadixDlt.RadixEngineToolkit.Native.nuspec | |
echo "Configured Version: $VERSION" | |
- name: NuGet Pack | |
working-directory: interop/csharp | |
run: nuget pack | |
- name: Publish Packages | |
working-directory: interop/csharp | |
run: dotnet nuget push RadixDlt.RadixEngineToolkit.Native.*.nupkg --source https://api.nuget.org/v3/index.json --api-key ${{ secrets.NUGET_ORG_API_KEY }} |