Build Rust Cross Platform #84
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 Rust Cross Platform | |
on: | |
workflow_call: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
- rc | |
- hotfix-rc | |
jobs: | |
build_rust: | |
name: Build for ${{ matrix.settings.os }} ${{ matrix.settings.target }} | |
runs-on: ${{ matrix.settings.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
settings: | |
- os: macos-12 | |
target: x86_64-apple-darwin | |
- os: macos-12 | |
target: aarch64-apple-darwin | |
- os: windows-2022 | |
target: x86_64-pc-windows-msvc | |
- os: ubuntu-22.04 | |
target: x86_64-unknown-linux-gnu | |
- os: ubuntu-22.04 | |
target: aarch64-unknown-linux-gnu | |
steps: | |
- name: Checkout | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
- name: Install rust | |
uses: dtolnay/rust-toolchain@be73d7920c329f220ce78e0234b8f96b7ae60248 # stable | |
with: | |
toolchain: stable | |
- name: Cache cargo registry | |
uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3 | |
- name: Install Cross (aarch64-unknown-linux-gnu) | |
if: ${{ matrix.settings.target == 'aarch64-unknown-linux-gnu' }} | |
run: cargo install cross --locked --git https://github.com/cross-rs/cross.git --rev 185398b1b885820515a212de720a306b08e2c8c9 | |
- name: Add build architecture | |
run: rustup target add ${{ matrix.settings.target }} | |
- name: Build Rust | |
env: | |
RUSTFLAGS: "-D warnings" | |
if: ${{ matrix.settings.target }} != aarch64-unknown-linux-gnu | |
run: cargo build --target ${{ matrix.settings.target }} --release | |
- name: Build Rust (aarch64-unknown-linux-gnu) | |
env: | |
RUSTFLAGS: "-D warnings" | |
if: ${{ matrix.settings.target }} == aarch64-unknown-linux-gnu | |
run: cross build --target ${{ matrix.settings.target }} --release | |
- name: Upload Artifact | |
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 | |
with: | |
name: libbitwarden_c_files-${{ matrix.settings.target }} | |
path: | | |
target/${{ matrix.settings.target }}/release/*bitwarden_c* |