mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-14 20:48:00 +00:00
### Description This PR gets the onnxruntime Rust bindings to a foundation where they can be extended and validated as the onnxruntime progresses. Specifically, the PR does the following. - fixes some of the existing compilation issues due to missing some enums output tensor data types. - introduces a `just vendor` task that will vendor the source code from the onnxruntime to enable a common base directory within the crate directory rather than using a relative parent path. This enables `crate package` to be able to archive the onnxruntime native code, which will enable consumers of the onnxruntime-sys crate to be able to compile on their target. - introduces a GH action to lint the Rust code (rustfmt, clippy), build the library, validate through tests, and validate crate can package correctly. TODOs: - [x] This PR is based on #18200 and will need to be rebased once that PR is merged. ### Motivation and Context <!-- - Why is this change required? What problem does it solve? - If it fixes an open issue, please link to the issue here. --> This is the first step to getting new onnxruntime Rust crates published through this project, which will unblock community Rust projects which would like to take a dependency on onnxruntime Rust. Follow up work to enable publication of onnxruntime Rust crates: - change name of the crates to be published (onnxruntime-rs and onnxruntime-sys are already taken and we'll need new names) - update authors / license to reflect contributions from previous maintainer(s) and new maintainers - introduce a crate publish GH action or ADO pipeline --------- Signed-off-by: David Justice <david@devigned.com>
44 lines
1.2 KiB
YAML
44 lines
1.2 KiB
YAML
# yaml-language-server: $schema=https://json.schemastore.org/github-action.json
|
|
|
|
name: 'Rust toolchain setup'
|
|
description: 'Common setup steps for GitHub workflows for Rust projects'
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- uses: dtolnay/rust-toolchain@1.71.0
|
|
with:
|
|
components: clippy, rustfmt
|
|
- uses: extractions/setup-just@v1
|
|
with:
|
|
just-version: '1.15.0' # optional semver specification, otherwise latest
|
|
|
|
###
|
|
### Linux setup
|
|
###
|
|
- name: rustup
|
|
# We need to use the nightly rust tool change to enable registry-auth / to connect to ADO feeds.
|
|
if: ${{ (runner.os == 'Linux') }}
|
|
run: |
|
|
rustup set profile minimal
|
|
rustup install
|
|
shell: bash
|
|
# - name: Cargo login
|
|
# if: ${{ (runner.os == 'Linux') }}
|
|
# run: just cargo-login-ci
|
|
# shell: bash
|
|
|
|
###
|
|
### Windows setup
|
|
###
|
|
- name: rustup
|
|
# We need to use the nightly rust tool change to enable registry-auth / to connect to ADO feeds.
|
|
if: ${{ (runner.os == 'Windows') }}
|
|
run: |
|
|
rustup set profile minimal
|
|
rustup install
|
|
shell: pwsh
|
|
# - name: Cargo login
|
|
# if: ${{ (runner.os == 'Windows') }}
|
|
# run: just cargo-login-ci-windows
|
|
# shell: pwsh
|