name: Build & Test
on: [push]
jobs:
build-rust:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: RustC Version
run: rustc --version
- name: Cargo Version
run: cargo --version
- name: Run `cargo check`
run: cargo check --all
- name: Build
run: cargo build --all --bins --lib
- uses: actions/upload-artifact@v1
with:
name: rust-build-${{ matrix.os }}
path: target
build-c-orig:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Build
working-directory: ./archivelib-sys-orig
run: |
mkdir build
cd build
cmake ..
make
rm -r CMakeFiles
- uses: actions/upload-artifact@v1
with:
name: c-orig
path: archivelib-sys-orig/build
build-c-refactored:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Build
working-directory: ./archivelib-sys-refactored
run: |
mkdir build
cd build
cmake ..
make
rm -r CMakeFiles
- uses: actions/upload-artifact@v1
with:
name: c-refactored
path: archivelib-sys-refactored/build
cargo-test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
needs:
- build-rust
steps:
- uses: actions/checkout@v1
- uses: actions/download-artifact@master
with:
name: rust-build-${{ matrix.os }}
- name: RustC Version
run: rustc --version
- name: Cargo Version
run: cargo --version
- name: Test
run: cargo test --all
e2e-test:
runs-on: ubuntu-latest
needs:
- build-rust
- build-c-orig
- build-c-refactored
steps:
- uses: actions/checkout@v1
- uses: actions/download-artifact@master
with:
name: rust-build-ubuntu-latest
path: target
- uses: actions/download-artifact@master
with:
name: c-orig
path: archivelib-sys-orig/build
- uses: actions/download-artifact@master
with:
name: c-refactored
path: archivelib-sys-refactored/build
- uses: actions/setup-python@v1
with:
python-version: '3.x'
- name: install deps
run: |
pip install poetry
poetry install
poetry run pip freeze
- name: Check PyTest setup
env:
ALTEST_NO_BUILD: 1
run: poetry run pytest --verbose ./e2e_test/test_system.py
- name: run e2e tests
env:
ALTEST_NO_BUILD: 1
run: poetry run pytest --maxfail=20 --verbose ./e2e_test/