Skip to content

fix proto linux

fix proto linux #59

Workflow file for this run

name: release
on:
push:
tags:
- "*"
env:
CARGO_TERM_COLOR: always
RUST_VERSION: 1.80.0
jobs:
prepare:
name: Prepare release
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
with:
fetch-depth: 0
build-wasm:
name: Build WASM packages
needs: prepare
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@master
name: Rust Toolchain Setup
with:
targets: wasm32-unknown-unknown
toolchain: ${{ env.RUST_VERSION }}
- uses: Swatinem/rust-cache@v1
with:
cache-on-failure: true
- uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Install wasm-pack
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- name: Build WASM (no-modules)
run: wasm-pack build --out-dir pkg-no-modules --release --target no-modules
- name: Build WASM (web)
run: wasm-pack build --out-dir pkg-web --release --target web
- name: Package WASM builds
id: wasm_artifacts
shell: bash
run: |
tar -czvf torii-wasm-no-modules.tar.gz pkg-no-modules/
tar -czvf torii-wasm-web.tar.gz pkg-web/
echo "files=torii-wasm-no-modules.tar.gz,torii-wasm-web.tar.gz" >> $GITHUB_OUTPUT
- name: Create release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
torii-wasm-no-modules.tar.gz
torii-wasm-web.tar.gz
build-and-release:
name: ${{ matrix.job.target }} (${{ matrix.job.os }})
needs: prepare
runs-on: ${{ matrix.job.os }}
strategy:
matrix:
job:
- os: ubuntu-latest
platform: linux
target: x86_64-unknown-linux-gnu
arch: amd64
- os: ubuntu-latest
platform: linux
target: aarch64-unknown-linux-gnu
arch: arm64
- os: macos-latest
platform: darwin
target: x86_64-apple-darwin
arch: amd64
- os: macos-latest
platform: darwin
target: aarch64-apple-darwin
arch: arm64
- os: windows-latest
platform: win32
target: x86_64-pc-windows-msvc
arch: amd64
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@master
name: Rust Toolchain Setup
with:
targets: ${{ matrix.job.target }}
toolchain: ${{ env.RUST_VERSION }}
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v1
with:
cache-on-failure: true
- uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
# Install cross for Linux builds
- name: Install cross
if: runner.os == 'Linux'
run: cargo install cross
# Apple M1 setup
- name: Apple M1 setup
if: ${{ matrix.job.target == 'aarch64-apple-darwin' }}
run: |
echo "SDKROOT=$(xcrun -sdk macosx --show-sdk-path)" >> $GITHUB_ENV
echo "MACOSX_DEPLOYMENT_TARGET=$(xcrun -sdk macosx --show-sdk-platform-version)" >> $GITHUB_ENV
# Add this step to explicitly install the target
- name: Install Target
run: rustup target add ${{ matrix.job.target }}
# Build step
- name: Build binaries
run: |
if [[ "${{ runner.os }}" == "Linux" ]]; then
cross build --release --target ${{ matrix.job.target }}
else
cargo build --release --target ${{ matrix.job.target }}
fi
shell: bash
- name: Package
id: artifacts
shell: bash
run: |
if [[ "${{ matrix.job.os }}" == "macos-latest" ]]; then
tar -czvf torii-${{ matrix.job.target }}-${{ matrix.job.arch }}.tar.gz dojo.h target/${{ matrix.job.target }}/release/libdojo_c.dylib
elif [[ "${{ matrix.job.os }}" == "windows-latest" ]]; then
tar -czvf torii-${{ matrix.job.target }}-${{ matrix.job.arch }}.tar.gz dojo.h target/${{ matrix.job.target }}/release/dojo_c.dll
else
tar -czvf torii-${{ matrix.job.target }}-${{ matrix.job.arch }}.tar.gz dojo.h target/${{ matrix.job.target }}/release/libdojo_c.so
fi
echo "file_name=torii-${{ matrix.job.target }}-${{ matrix.job.arch }}.tar.gz" >> $GITHUB_OUTPUT
- name: Create release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
${{ steps.artifacts.outputs.file_name }}