name: Build ksud
on:
  workflow_call:
    inputs:
      target:
        required: true
        type: string
      use_cache:
        required: false
        type: boolean
        default: true
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
      with:
        fetch-depth: 0
    # cross build failed after Rust 1.68, see https://github.com/cross-rs/cross/issues/1222
    - run: rustup default 1.67.0
    - uses: Swatinem/rust-cache@v2
      with:
        workspaces: userspace/ksud
        cache-targets: false

    - name: Install cross
      run: cargo install cross --locked

    - name: Build ksud
      run: cross build --target ${{ inputs.target }} --release --manifest-path ./userspace/ksud/Cargo.toml

    - name: Upload ksud artifact
      uses: actions/upload-artifact@v4
      with:
        name: ksud-${{ inputs.target }}
        path: userspace/ksud/target/**/release/ksud
