aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r--.github/workflows/ci.yml166
1 files changed, 166 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..f9adc30
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,166 @@
+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