1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
name: CI
on:
push:
branches: [ "*" ]
pull_request:
branches: [ main ]
schedule:
# Every Saturday at 4:30 AM UTC.
- cron: '30 4 * * 6'
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, macos-12, ubuntu-20.04, macos-11, ubuntu-18.04]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Update Rust Toolchain
run: rustup update
- name: Install dependencies (macOS)
run: brew install shunit2 shellcheck shfmt
if: runner.os == 'macOS'
- name: Install dependencies (Linux)
run: |
sudo apt-get update
sudo apt-get -y install libacl1-dev acl shunit2 valgrind shellcheck
if: runner.os == 'Linux'
- name: Fetch
run: cargo fetch
- name: Build (no-serde)
run: cargo build
- name: Build (serde)
run: cargo build --features serde
- name: Unit Test (no-serde)
run: cargo test
- name: Unit Test (serde)
run: cargo test --features serde
- name: Run integration tests
run: ./tests/run_tests.sh
- name: Run memory tests (Linux)
run: ./tests/run_tests.sh memcheck
if: runner.os == 'Linux' && matrix.os != 'ubuntu-18.04'
- name: Code coverage
run: ./ci/coverage.sh codecov
- name: Lint Check
run: ./ci/lint.sh
- name: Format Check
run: ./ci/format.sh
- name: Docs Check
run: ./ci/docs.sh
- name: Bindgen Check
run: ./ci/bindgen.sh
|