diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 930f4645..5a5854f7 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -114,17 +114,14 @@ jobs: - os: macos-latest TARGET: aarch64-apple-darwin - - os: macos-latest - TARGET: x86_64-apple-darwin - - os: ubuntu-latest - TARGET: arm-unknown-linux-musleabihf + TARGET: aarch64-unknown-linux-gnu - os: ubuntu-latest - TARGET: armv7-unknown-linux-musleabihf + TARGET: armv7-unknown-linux-gnueabihf - os: ubuntu-latest - TARGET: x86_64-unknown-linux-musl + TARGET: x86_64-unknown-linux-gnu - os: windows-latest TARGET: x86_64-pc-windows-msvc @@ -135,17 +132,26 @@ jobs: run: echo "${{ matrix.TARGET }}" - uses: actions/checkout@master - - uses: actions-rs/toolchain@v1.0.1 - with: - toolchain: stable - target: ${{ matrix.TARGET }} - override: true - - - uses: actions-rs/cargo@v1 - with: - use-cross: true - command: build - args: --verbose --release --target=${{ matrix.TARGET }} + - name: Install build dependencies - Rustup + run: | + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain stable --profile default --target ${{ matrix.TARGET }} -y + echo "$HOME/.cargo/bin" >> $GITHUB_PATH + + # For linux, it's necessary to use cross from the git repository to avoid glibc problems + # Ref: https://github.com/cross-rs/cross/issues/1510 + - name: Install cross for linux + if: contains(matrix.TARGET, 'linux') + run: | + cargo install cross --git https://github.com/cross-rs/cross --rev 1b8cf50d20180c1a394099e608141480f934b7f7 + + - name: Install cross for mac and windows + if: ${{ !contains(matrix.TARGET, 'linux') }} + run: | + cargo install cross + + - name: Build + run: | + cross build --verbose --release --target=${{ matrix.TARGET }} - name: Rename run: cp target/${{ matrix.TARGET }}/release/eframe_template${{ matrix.EXTENSION }} eframe_template-${{ matrix.TARGET }}${{ matrix.EXTENSION }}