name: Continuous Integration
on:
push:
branches:
- "*"
jobs:
ci:
name: rust ${{ matrix.rust }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
rust:
- stable
- beta
- 1.73.0
os:
- ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Rust ${{ matrix.rust }}.
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
components: rustfmt, clippy
- name: Run tests.
uses: actions-rs/cargo@v1
with:
command: test
- name: Test with valgrind.
run: |
set -xe
sudo apt-get update
sudo apt-get install -y valgrind
cargo build --examples
for TEST in tests/examples/*.sh
do
export TEST_FILE_PATH="$TEST"
valgrind --error-exitcode=1 \
bash target/examples/bash-builtins/init.sh
done
- name: Check Clippy lints.
uses: actions-rs/cargo@v1
with:
command: clippy
args: -- -D warnings
- name: Check format.
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check