Fix file locking #634
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: Run tests | |
on: | |
push: | |
branches: [main, "[0-9]+.[0-9]+.[0-9]+"] | |
pull_request: | |
branches: [main, "[0-9]+.[0-9]+.[0-9]+"] | |
env: | |
RUST_LOG: debug,j4rs=warn | |
CARGO_INCREMENTAL: 0 | |
RUSTFLAGS: "-C debuginfo=0" | |
jobs: | |
test: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
include: | |
- os: ubuntu-latest | |
rust-target: x86_64-unknown-linux-gnu | |
java-arch: x64 | |
- os: windows-latest | |
rust-target: x86_64-pc-windows-msvc | |
java-arch: x64 | |
- os: macos-latest | |
rust-target: aarch64-apple-darwin | |
java-arch: arm64 | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
components: clippy, rustfmt | |
- name: Cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Add rustup target | |
run: rustup target add ${{ matrix.rust-target }} | |
- name: Diagnostics on Windows | |
if: matrix.os == 'windows-latest' | |
run: "gci env:" | |
- name: Enable long paths for git | |
if: matrix.os == 'windows-latest' | |
run: git config --system core.longpaths true # allow long paths from git deps | |
- name: Rustfmt | |
run: cargo fmt -- --check | |
- name: Clippy | |
if: matrix.os == 'ubuntu-latest' | |
run: cargo clippy --all-features --target ${{ matrix.rust-target }} | |
- name: Build test binary | |
run: cargo test --no-run --target ${{ matrix.rust-target }} | |
- name: Install dependencies | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
sudo apt update -y | |
sudo apt install -y check valgrind # required for make plugin | |
sudo apt install -y libcurl4-gnutls-dev libgit2-dev # required for R | |
- name: Install Java | |
uses: actions/setup-java@v4 | |
with: | |
distribution: "temurin" | |
java-version: "17" | |
architecture: ${{ matrix.java-arch }} | |
- name: Install Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "18" | |
- name: Install C# | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: "6.0.x" | |
- name: Install R | |
if: matrix.os == 'ubuntu-latest' | |
uses: r-lib/actions/setup-r@v2 | |
with: | |
r-version: "4.2.2" | |
- name: Install tmc-r-tester | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
Rscript -e 'install.packages(c("testthat", "jsonlite", "R.utils"))' | |
Rscript -e 'install.packages("crates/plugins/r/tests/tmcRtestrunner", repos=NULL, type="source")' | |
- name: Run tests | |
run: cargo test --no-fail-fast --target ${{ matrix.rust-target }} |