archivelib 0.2.0

An implementaton of the Greenleaf ArchiveLib compression/decompression algorithm
Documentation
name: Build & Test

on: [push]

jobs:
  build-rust:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os:
          # - macOS-latest
          # - windows-latest
          - 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:
          # - macOS-latest
          # - windows-latest
          - 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/