summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorSteve Loveless <steve.loveless@gmail.com>2023-06-26 22:04:24 -0700
committergit <svn-admin@ruby-lang.org>2023-08-15 20:52:06 +0000
commite6e23b92e3019e27471c9bf7a97db5f95e7a9a29 (patch)
treedb9da4554b9cede85f7994ba36ecfdc003efe38e /.github
parent0f94e653597dc2ae21ae39ac4c85266f3bb36ab6 (diff)
[ruby/yarp] rust: Initial yarp-sys
Still need to add more tests Update Cargo.toml; add README Switch yp_string_t_type variants to SNAKE_CASE Add unescape tests Add encoding callback tests Add pack_parse test Add diagnostic test Add comment test Add node tests Add string_list tests Add other string tests Add shared string test Add list tests Fixes for updated branch Run bundle install before running Rust tests Fix version test ci: Add proper config for rust-toolchain step for sanitizers ci: Fix tests, clippy Remove extra `bundle install`; run `bundle exec rake` Didn't realize `setup-ruby`'s `bundle-cache: true` runs `bundle install`. Remove `rake compile` from build.rs This is complicating CI for me; maybe we add it back later. Undo README formatting changes Fix UB in C callbacks Use slice+str instead of String for raw things Move bindings to bindings module Handle non-UTF-8 strings in paths rust ci: test with sanitizers; add -D warnings Update rust-bindings.yml Update Cargo.toml Don't need to compile extra crate_types PR changes Apply patch from @kddnewton Delete unescape_tests.rs Fix things after rebasing https://github.com/ruby/yarp/commit/273790e40b
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/rust-bindings.yml101
1 files changed, 101 insertions, 0 deletions
diff --git a/.github/workflows/rust-bindings.yml b/.github/workflows/rust-bindings.yml
new file mode 100644
index 0000000000..80fa75bce5
--- /dev/null
+++ b/.github/workflows/rust-bindings.yml
@@ -0,0 +1,101 @@
+---
+name: Rust Bindings
+
+on:
+ push:
+ paths:
+ - ".github/workflows/rust-bindings.yml"
+ - "include/"
+ - "src/"
+ - "rust/"
+ - "*akefile*"
+ branches:
+ - main
+ pull_request:
+
+env:
+ RUSTFLAGS: "-D warnings"
+
+jobs:
+ cargo-test:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: Set up Ruby
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: head
+ bundler-cache: true
+ - uses: actions/cache@v3
+ with:
+ path: |
+ ~/.cargo/registry
+ ~/.cargo/git
+ target
+ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.toml') }}
+ restore-keys: |
+ ${{ runner.os }}-cargo-${{ hashFiles('Cargo.toml') }}
+ ${{ runner.os }}-cargo
+ - name: rake compile
+ run: bundle exec rake compile
+ - name: cargo test
+ working-directory: rust/yarp-sys
+ run: cargo test
+
+ cargo-clippy:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: Set up Ruby
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: head
+ bundler-cache: true
+ - uses: actions/cache@v3
+ with:
+ path: |
+ ~/.cargo/registry
+ ~/.cargo/git
+ target
+ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.toml') }}
+ restore-keys: |
+ ${{ runner.os }}-cargo-${{ hashFiles('Cargo.toml') }}
+ ${{ runner.os }}-cargo
+ - name: rake compile
+ run: bundle exec rake compile
+ - name: cargo clippy
+ working-directory: rust/yarp-sys
+ run: cargo clippy --tests -- -W "clippy::pedantic"
+
+ sanitizer-test:
+ name: Test with -Zsanitizer=${{ matrix.sanitizer }}
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ sanitizer: [address, leak]
+ steps:
+ - uses: actions/checkout@v3
+ - name: Set up Ruby
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: head
+ bundler-cache: true
+ - name: rake compile
+ run: bundle exec rake compile
+ - uses: dtolnay/rust-toolchain@nightly
+ with:
+ target: "x86_64-unknown-linux-gnu"
+ components: "rust-src"
+ - name: Test with sanitizer
+ env:
+ RUSTFLAGS: -Zsanitizer=${{ matrix.sanitizer }}
+ RUSTDOCFLAGS: -Zsanitizer=${{ matrix.sanitizer }}
+ # only needed by asan
+ ASAN_OPTIONS: detect_stack_use_after_return=1
+ # Asan's leak detection occasionally complains
+ # about some small leaks if backtraces are captured,
+ # so ensure they're not
+ RUST_BACKTRACE: 0
+ working-directory: rust/yarp-sys
+ run: cargo test -Zbuild-std --verbose --target=x86_64-unknown-linux-gnu