Skip to content

Fix file locking

Fix file locking #634

Workflow file for this run

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 }}