| name: CI |
| on: |
| pull_request: |
| push: |
| branches: |
| - master |
| |
| env: |
| RUST_BACKTRACE: 1 |
| CARGO_TERM_COLOR: always |
| |
| jobs: |
| ci-pass: |
| name: CI is green |
| runs-on: ubuntu-latest |
| needs: |
| - msrv |
| - test-linux |
| - test-macos |
| - test-windows |
| - build-cross |
| - test-cgroups |
| steps: |
| - run: exit 0 |
| |
| msrv: |
| runs-on: ubuntu-latest |
| |
| strategy: |
| matrix: |
| rust: |
| - 1.13 |
| target: |
| - x86_64-unknown-linux-gnu |
| |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Run tests |
| run: | |
| rustup default ${{ matrix.rust }} |
| rustup target add ${{ matrix.target }} |
| cargo test --verbose --target ${{ matrix.target }} |
| |
| test-linux: |
| runs-on: ubuntu-latest |
| |
| strategy: |
| matrix: |
| rust: |
| - stable |
| - beta |
| - nightly |
| target: |
| - x86_64-unknown-linux-gnu |
| - x86_64-unknown-linux-musl |
| |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Run tests |
| run: | |
| rustup default ${{ matrix.rust }} |
| rustup target add ${{ matrix.target }} |
| cargo test --verbose --target ${{ matrix.target }} |
| |
| test-macos: |
| runs-on: macos-latest |
| |
| strategy: |
| matrix: |
| rust: |
| - stable |
| - beta |
| - nightly |
| target: |
| - x86_64-apple-darwin |
| |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Run tests |
| run: | |
| rustup default ${{ matrix.rust }} |
| rustup target add ${{ matrix.target }} |
| cargo test --verbose --target ${{ matrix.target }} |
| |
| test-windows: |
| runs-on: windows-latest |
| |
| strategy: |
| matrix: |
| rust: |
| - stable |
| - beta |
| - nightly |
| target: |
| - x86_64-pc-windows-gnu |
| - x86_64-pc-windows-msvc |
| |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Run tests |
| run: | |
| rustup default ${{ matrix.rust }} |
| rustup target add ${{ matrix.target }} |
| cargo test --verbose --target ${{ matrix.target }} |
| |
| build-cross: |
| runs-on: ubuntu-latest |
| |
| strategy: |
| matrix: |
| rust: |
| - stable |
| target: |
| - aarch64-unknown-linux-gnu |
| - i686-pc-windows-gnu |
| - i686-pc-windows-msvc |
| - i686-unknown-linux-gnu |
| - aarch64-apple-darwin |
| - aarch64-pc-windows-msvc |
| - aarch64-unknown-linux-musl |
| - arm-unknown-linux-gnueabi |
| - arm-unknown-linux-gnueabihf |
| - armv7-unknown-linux-gnueabihf |
| - mips-unknown-linux-gnu |
| - mips64-unknown-linux-gnuabi64 |
| - mips64el-unknown-linux-gnuabi64 |
| - mipsel-unknown-linux-gnu |
| - powerpc-unknown-linux-gnu |
| - powerpc64-unknown-linux-gnu |
| - powerpc64le-unknown-linux-gnu |
| - riscv64gc-unknown-linux-gnu |
| - s390x-unknown-linux-gnu |
| - x86_64-unknown-freebsd |
| - x86_64-unknown-illumos |
| - x86_64-unknown-netbsd |
| - i686-linux-android |
| - x86_64-linux-android |
| - arm-linux-androideabi |
| - aarch64-linux-android |
| - x86_64-apple-ios |
| - asmjs-unknown-emscripten |
| - aarch64-apple-ios |
| - aarch64-apple-ios-sim |
| - aarch64-apple-darwin |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Run build |
| run: | |
| rustup default ${{ matrix.rust }} |
| rustup target add ${{ matrix.target }} |
| cargo build --verbose --target ${{ matrix.target }} |
| |
| test-cgroups: |
| runs-on: ubuntu-latest |
| |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Test Cgroup |
| run: | |
| docker build -f ci/cgroups/Dockerfile -t num-cpus-cgroups . |
| # Test without cgroups |
| docker run -e NUM_CPUS_TEST_GET=2 num-cpus-cgroups |
| # Only 1 CPU |
| docker run --cpus="1" -e NUM_CPUS_TEST_GET=1 num-cpus-cgroups |
| # 1.5 CPUs |
| docker run --cpus="1.5" -e NUM_CPUS_TEST_GET=2 num-cpus-cgroups |