jdrouet/mrml

View on GitHub
.github/workflows/mrml-core-main.yml

Summary

Maintainability
Test Coverage
name: mrml-core

on:
  merge_group:
    types: [checks_requested]
  workflow_call:
  pull_request:
    paths:
      - '.github/workflows/mrml-core-main.yml'
      - 'Cargo.lock'
      - 'Cargo.toml'
      - 'packages/mrml-core/**'
  push:
    branches:
      - main
    paths:
      - '.github/workflows/mrml-core-main.yml'
      - 'Cargo.lock'
      - 'Cargo.toml'
      - 'packages/mrml-core/**'

defaults:
  run:
    working-directory: packages/mrml-core

env:
  RUSTFLAGS: "-Dwarnings"

jobs:
  testing:
    runs-on: ubuntu-latest
    container: rust:1-bullseye

    concurrency:
      group: ${{ github.ref }}-mrml-core-testing
      cancel-in-progress: true

    steps:
      - uses: actions/checkout@v4

      - name: install cargo toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          profile: minimal

      - name: prepare cache
        uses: actions/cache@v4
        with:
          path: |
            ~/.cargo/bin/
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
            target/
          key: ${{ runner.os }}-testing-${{ hashFiles('**/Cargo.lock') }}

      - name: install cargo-llvm-cov
        uses: taiki-e/install-action@cargo-llvm-cov

      - name: run tests
        run: cargo llvm-cov --all-features --workspace --exclude mrml-python --exclude mrml-wasm --lcov --output-path lcov.info

      - name: upload coverage
        uses: codecov/codecov-action@v4
        with:
          files: lcov.info
          fail_ci_if_error: false