fixed and improved for target architect features detection #129
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: Rust CI # https://docs.github.com/en/actions, https://course.rs/test/ci.html | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
#schedule: -cron:'0 0 * * *' | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
testbench: | |
#name: Build Rust Project | |
runs-on: ubuntu-latest # https://github.com/actions/virtual-environments | |
#strategy: | |
# matrix: | |
# toolchain: | |
# - stable | |
# - nightly | |
# | |
# compiler: [gcc, clang] | |
# build: [linux, macos, windows] | |
# include: | |
# - build: linux | |
# os: ubuntu-latest | |
# target: x86_64-unknown-linux-musl | |
# - build: macos | |
# os: macos-latest | |
# target: aarch64-apple-darwin | |
# - build: windows | |
# os: windows-latest | |
# target: x86_64-pc-windows-msvc | |
# fail-fast: false | |
steps: | |
#- run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }} | |
#- name: Install toolchain | |
# uses: dtolnay/rust-toolchain@stable | |
# | |
# uses: actions-rs/toolchain@v1 | |
# with: | |
# toolchain: nightly | |
# #toolchain: ${{ matrix.rust }} | |
# #target: ${{ matrix.target }} | |
# #profile: minimal | |
# #override: true | |
#- uses: Swatinem/rust-cache@v2 | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- run: 3rdparty/layout.sh | |
- name: Run tests | |
# uses: taiki-e/install-action@nextest | |
run: cargo t -F "evg,b2d,ftg,ovg,nvg,ugl" -- --nocapture #cargo nextest r | |
env: # DYLD_FALLBACK_LIBRARY_PATH (macOS), PATH (Windows) # XXX: | |
LD_LIBRARY_PATH: ${{github.workspace}}/3rdparty/amanithvg/lib/linux/x86_64/sre/standalone | |
- name: Benchmark | |
run: cargo bench -F "evg,b2d" #--all-features # evg_fixed,b2d_sfp | |
# sudo cargo flamegraph --bench engine_2d | |
#- name: Publish to crates-io | |
# uses: katyo/publish-crates@v2 | |
# with: | |
# registry-token: ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
coverage: # https://github.com/xd009642/tarpaulin | |
runs-on: ubuntu-latest | |
#container: | |
# image: xd009642/tarpaulin:develop-nightly | |
# options: --security-opt seccomp=unconfined | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- uses: Swatinem/rust-cache@v2 | |
- uses: taiki-e/install-action@cargo-llvm-cov | |
- run: rustup toolchain install nightly --profile minimal --component llvm-tools | |
- name: Generate code coverage # https://github.com/actions-rs/tarpaulin | |
#env: | |
# CC: clang | |
# CXX: clang++ | |
run: cargo llvm-cov --lcov --output-path lcov.info #--workspace --all-features | |
# cargo +nightly llvm-cov --include-ffi --doctests --lcov --output-path lcov.info #--workspace --all-features | |
# cargo tarpaulin --run-types 'Tests,Doctests' --out Lcov --exclude-files 'inperse/src/*' | |
# cargo install tarpaulin | |
#uses: actions-rs/tarpaulin@v0.1 # XXX: no more working | |
#with: | |
# #version: '0.20.1' | |
# #args: '-- --test-threads 1' | |
# run-types: 'Tests,Doctests' | |
- name: Upload to codecov.io | |
uses: codecov/codecov-action@v3 | |
with: | |
# token: ${{secrets.CODECOV_TOKEN}} # not required for public repos | |
# fail_ci_if_error: true | |
files: lcov.info | |
#- name: Archive code coverage results | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: code-coverage-report | |
# path: cobertura.xml | |