Sm/test-ruby-language-bindings #1914
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 | |
pull_request: | |
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-13 | |
target: x86_64-apple-darwin | |
- os: macos-13 | |
target: aarch64-apple-darwin | |
- os: windows-2022 | |
target: x86_64-pc-windows-msvc | |
- os: windows-2022 | |
target: x86_64-pc-windows-gnu | |
- os: ubuntu-22.04 | |
target: x86_64-unknown-linux-gnu | |
- os: ubuntu-22.04 | |
target: x86_64-unknown-linux-musl | |
- os: ubuntu-22.04 | |
target: aarch64-unknown-linux-musl | |
steps: | |
- name: Checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Install rust | |
uses: dtolnay/rust-toolchain@7b1c307e0dcbda6122208f10795a713336a9b35a # stable | |
with: | |
toolchain: stable | |
- name: Cache cargo registry | |
uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3 | |
- uses: goto-bus-stop/setup-zig@7ab2955eb728f5440978d5824358023be3a2802d # v2.2.0 | |
if: ${{ contains(matrix.settings.target, 'musl') }} | |
with: | |
version: 0.12.0 | |
- name: Install Zigbuild | |
if: ${{ contains(matrix.settings.target, 'musl') }} | |
run: cargo install cargo-zigbuild --locked --git https://github.com/rust-cross/cargo-zigbuild --rev 6f7e1336c9cd13cf1b3704f93c40fcf84caaed6b # 0.18.4 | |
- name: Add build architecture | |
run: rustup target add ${{ matrix.settings.target }} | |
- name: Build Rust for - ${{ matrix.settings.target }} | |
if: ${{ contains(matrix.settings.target, 'musl') }} | |
env: | |
RUSTFLAGS: "-D warnings" | |
run: cargo zigbuild -p bitwarden-c --target ${{ matrix.settings.target }} --release | |
- name: Build Rust for - ${{ matrix.settings.target }} | |
if: ${{ !contains(matrix.settings.target, 'musl') }} | |
env: | |
RUSTFLAGS: "-D warnings" | |
run: cargo build -p bitwarden-c --target ${{ matrix.settings.target }} --release | |
- name: Upload Artifact | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
with: | |
name: libbitwarden_c_files-${{ matrix.settings.target }} | |
path: | | |
target/${{ matrix.settings.target }}/release/*bitwarden_c* |