sbox 0.2.4

Tiny Linux containers implementation
Documentation
name: Main
on: [push]
env:
  CARGO_TERM_COLOR: always
jobs:
  coverage:
    name: Run test coverage
    runs-on: ubuntu-22.04
    steps:
    - name: Check out code
      uses: actions/checkout@v3
    - name: Set up Rust
      uses: actions-rust-lang/setup-rust-toolchain@v1.3.7
      with:
        toolchain: nightly
        components: llvm-tools-preview
    - name: Install cargo-llvm-cov
      run: cargo install cargo-llvm-cov
    - name: Setup Cgroup
      run: |
        sudo mkdir -p $TEST_CGROUP_PATH/test.scope
        sudo chown -R $(id -u):$(id -g) $TEST_CGROUP_PATH
        sudo usermod --add-subuids 100000-165536 --add-subgids 100000-165536 $(id -un)
        sudo echo -n '+memory +pids +cpu' >$TEST_CGROUP_PATH/cgroup.subtree_control
      env:
        TEST_CGROUP_PATH: /sys/fs/cgroup/sbox.slice
    - name: Run test coverage
      run: |
        sudo bash -c "echo -n $$ >$TEST_CGROUP_PATH/test.scope/cgroup.procs"
        cargo llvm-cov clean --workspace
        cargo llvm-cov --lcov --output-path ./coverage.lcov
      env:
        TEST_CGROUP_PATH: /sys/fs/cgroup/sbox.slice
    - name: Cleanup Cgroup
      run: |
        sudo rmdir $(ls -d $TEST_CGROUP_PATH/*/) $TEST_CGROUP_PATH
      env:
        TEST_CGROUP_PATH: /sys/fs/cgroup/sbox.slice
    - name: Upload results to Codecov
      uses: codecov/codecov-action@v3
      env:
        CODECOV_TOKEN: ${{secrets.CODECOV_TOKEN}}
      with:
        file: ./coverage.lcov