From fbaa3c94bb78e1e9977b7a95088d6585215fe8a3 Mon Sep 17 00:00:00 2001 From: "wudi.daniel" Date: Fri, 22 Oct 2021 08:58:20 +0800 Subject: [PATCH 1/8] ci: set up github action workflow for rust --- .github/workflows/cargo-test-linux.yml | 22 ++++++++++++++++++++++ .github/workflows/cargo-test-macos.yml | 22 ++++++++++++++++++++++ .github/workflows/cargo-test-windows.yml | 22 ++++++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 .github/workflows/cargo-test-linux.yml create mode 100644 .github/workflows/cargo-test-macos.yml create mode 100644 .github/workflows/cargo-test-windows.yml diff --git a/.github/workflows/cargo-test-linux.yml b/.github/workflows/cargo-test-linux.yml new file mode 100644 index 0000000..0a0eb80 --- /dev/null +++ b/.github/workflows/cargo-test-linux.yml @@ -0,0 +1,22 @@ +name: Cargo Test Linux + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + CARGO_TERM_COLOR: always + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Make clippy happy + run: cargo clippy + - name: Run tests + run: cargo test --verbose diff --git a/.github/workflows/cargo-test-macos.yml b/.github/workflows/cargo-test-macos.yml new file mode 100644 index 0000000..191209c --- /dev/null +++ b/.github/workflows/cargo-test-macos.yml @@ -0,0 +1,22 @@ +name: Cargo Test macOS + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + CARGO_TERM_COLOR: always + +jobs: + build: + + runs-on: macos-latest + + steps: + - uses: actions/checkout@v2 + - name: Make clippy happy + run: cargo clippy + - name: Run tests + run: cargo test --verbose diff --git a/.github/workflows/cargo-test-windows.yml b/.github/workflows/cargo-test-windows.yml new file mode 100644 index 0000000..815b15f --- /dev/null +++ b/.github/workflows/cargo-test-windows.yml @@ -0,0 +1,22 @@ +name: Cargo Test Windows + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + CARGO_TERM_COLOR: always + +jobs: + build: + + runs-on: windows-latest + + steps: + - uses: actions/checkout@v2 + - name: Make clippy happy + run: cargo clippy + - name: Run tests + run: cargo test --verbose From a8b3ccc94f590802775bdfa987c3c3902df36a20 Mon Sep 17 00:00:00 2001 From: "wudi.daniel" Date: Sat, 23 Oct 2021 01:34:30 +0800 Subject: [PATCH 2/8] remove stale travis file --- .travis.yml | 81 ------------------------------------------- ci/cgroups/Dockerfile | 9 ----- 2 files changed, 90 deletions(-) delete mode 100644 .travis.yml delete mode 100644 ci/cgroups/Dockerfile diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index cec6ddb..0000000 --- a/.travis.yml +++ /dev/null @@ -1,81 +0,0 @@ -language: rust -rust: stable -dist: xenial -sudo: false -notifications: - email: disabled - -cache: cargo - -install: - - if [ -z "$NO_ADD" ]; then rustup target add "$TARGET"; fi - -script: - - cargo build --verbose --target "$TARGET" - # Only run the targets if we are on the same OS. - - if [ "$RUN" == "1" ]; then cargo test --verbose --target "$TARGET"; fi - -env: - global: - # Travis CI servers make 2 cores available to processes via virtualization. - # See https://docs.travis-ci.com/user/reference/overview/ - - NUM_CPUS_TEST_GET=2 - -matrix: - include: - # Linux - # Minimum Supported Rust Version - - name: Minimum Supported Rust Version - env: TARGET=x86_64-unknown-linux-gnu RUN=1 NO_ADD=1 - rust: 1.13.0 - # 32-bit requires multilib. - - env: TARGET=i686-unknown-linux-gnu RUN=1 - addons: - apt: - packages: - - gcc-multilib - # 64-bit stable. - - env: TARGET=x86_64-unknown-linux-gnu RUN=1 NO_ADD=1 - rust: stable - # 64-bit beta. - - env: TARGET=x86_64-unknown-linux-gnu RUN=1 NO_ADD=1 - rust: beta - # 64-bit nightly. - - env: TARGET=x86_64-unknown-linux-gnu RUN=1 NO_ADD=1 - rust: nightly - - # Mac OS X - - os: osx - env: TARGET=x86_64-apple-darwin RUN=1 NO_ADD=1 - # Android - # - for x86 - - env: TARGET=i686-linux-android - - env: TARGET=x86_64-linux-android - # - for ARM - - env: TARGET=arm-linux-androideabi - - env: TARGET=aarch64-linux-android - # IOS - - os: osx - osx_image: xcode9 - env: TARGET=x86_64-apple-ios - # FreeBSD - - env: TARGET=x86_64-unknown-freebsd - # Fuchsia - # FIXME: figure out why target is missing and re-enable - #- env: TARGET=x86_64-unknown-fuchsia - # NetBSD - - env: TARGET=x86_64-unknown-netbsd - # Emscripten - - env: TARGET=asmjs-unknown-emscripten - - # CGroups in Docker - - name: Docker CGroups - install: - script: - - docker build -f ci/cgroups/Dockerfile -t num-cpus-cgroups . - # Test without cgroups - - docker run -it -e NUM_CPUS_TEST_GET=2 num-cpus-cgroups - # Only 1 CPU - - docker run -it --cpus="1" -e NUM_CPUS_TEST_GET=1 num-cpus-cgroups - # 1.5 CPUs - - docker run -it --cpus="1.5" -e NUM_CPUS_TEST_GET=2 num-cpus-cgroups diff --git a/ci/cgroups/Dockerfile b/ci/cgroups/Dockerfile deleted file mode 100644 index d5f288a..0000000 --- a/ci/cgroups/Dockerfile +++ /dev/null @@ -1,9 +0,0 @@ -FROM rust:1.40 - -WORKDIR /usr/num_cpus - -COPY . . - -RUN cargo build - -CMD [ "cargo", "test", "--lib" ] From c4c81c9db3857ff65d033c619110434d73e8ddea Mon Sep 17 00:00:00 2001 From: "wudi.daniel" Date: Wed, 27 Oct 2021 15:46:05 +0800 Subject: [PATCH 3/8] add docker cgroup --- .github/workflows/cargo-clippy.yml | 20 +++++++++++++ .github/workflows/cargo-test-linux.yml | 12 ++++++-- .github/workflows/cargo-test-macos.yml | 12 ++++++-- .github/workflows/cargo-test-minimum-rust.yml | 28 +++++++++++++++++++ .github/workflows/cargo-test-windows.yml | 12 ++++++-- .github/workflows/test-docker-cgroup.yml | 27 ++++++++++++++++++ ci/cgroups/Dockerfile | 9 ++++++ 7 files changed, 111 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/cargo-clippy.yml create mode 100644 .github/workflows/cargo-test-minimum-rust.yml create mode 100644 .github/workflows/test-docker-cgroup.yml create mode 100644 ci/cgroups/Dockerfile diff --git a/.github/workflows/cargo-clippy.yml b/.github/workflows/cargo-clippy.yml new file mode 100644 index 0000000..acef88d --- /dev/null +++ b/.github/workflows/cargo-clippy.yml @@ -0,0 +1,20 @@ +name: Cargo Clippy + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + CARGO_TERM_COLOR: always + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Make clippy happy + run: cargo clippy diff --git a/.github/workflows/cargo-test-linux.yml b/.github/workflows/cargo-test-linux.yml index 0a0eb80..6db3aa3 100644 --- a/.github/workflows/cargo-test-linux.yml +++ b/.github/workflows/cargo-test-linux.yml @@ -14,9 +14,15 @@ jobs: 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: Make clippy happy - run: cargo clippy - name: Run tests - run: cargo test --verbose + run: | + rustup default ${{ matrix.rust }} + rustup target add ${{ matrix.target }} + cargo test --verbose --target ${{ matrix.target }} diff --git a/.github/workflows/cargo-test-macos.yml b/.github/workflows/cargo-test-macos.yml index 191209c..c3cf500 100644 --- a/.github/workflows/cargo-test-macos.yml +++ b/.github/workflows/cargo-test-macos.yml @@ -14,9 +14,15 @@ jobs: runs-on: macos-latest + strategy: + matrix: + rust: [stable, beta, nightly] + target: [x86_64-apple-darwin, x86_64-apple-ios, aarch64-apple-darwin] + steps: - uses: actions/checkout@v2 - - name: Make clippy happy - run: cargo clippy - name: Run tests - run: cargo test --verbose + run: | + rustup default ${{ martix.rust }} + rustup target add ${{ matrix.target }} + cargo test --verbose --target ${{ matrix.target }} diff --git a/.github/workflows/cargo-test-minimum-rust.yml b/.github/workflows/cargo-test-minimum-rust.yml new file mode 100644 index 0000000..785672c --- /dev/null +++ b/.github/workflows/cargo-test-minimum-rust.yml @@ -0,0 +1,28 @@ +name: Cargo Test Minimum Rust Version + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + CARGO_TERM_COLOR: always + +jobs: + build: + + 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 }} diff --git a/.github/workflows/cargo-test-windows.yml b/.github/workflows/cargo-test-windows.yml index 815b15f..3c563ca 100644 --- a/.github/workflows/cargo-test-windows.yml +++ b/.github/workflows/cargo-test-windows.yml @@ -14,9 +14,15 @@ jobs: 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: Make clippy happy - run: cargo clippy - name: Run tests - run: cargo test --verbose + run: | + rustup default ${{ matrix.rust }} + rustup target add ${{ matrix.target }} + cargo test --verbose --target ${{ matrix.target }} diff --git a/.github/workflows/test-docker-cgroup.yml b/.github/workflows/test-docker-cgroup.yml new file mode 100644 index 0000000..bc27b80 --- /dev/null +++ b/.github/workflows/test-docker-cgroup.yml @@ -0,0 +1,27 @@ +name: Test Docker Cgroup + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + CARGO_TERM_COLOR: always + +jobs: + build: + + 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 diff --git a/ci/cgroups/Dockerfile b/ci/cgroups/Dockerfile new file mode 100644 index 0000000..7636a47 --- /dev/null +++ b/ci/cgroups/Dockerfile @@ -0,0 +1,9 @@ +FROM rust:latest + +WORKDIR /usr/num_cpus + +COPY . . + +RUN cargo build + +CMD [ "cargo", "test", "--lib" ] From 2f97c5770968f3a535d06b957cd21e39aa108798 Mon Sep 17 00:00:00 2001 From: "wudi.daniel" Date: Thu, 4 Nov 2021 13:01:17 +0800 Subject: [PATCH 4/8] try add some targets --- .github/workflows/cargo-test-cross.yml | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .github/workflows/cargo-test-cross.yml diff --git a/.github/workflows/cargo-test-cross.yml b/.github/workflows/cargo-test-cross.yml new file mode 100644 index 0000000..3c58cc8 --- /dev/null +++ b/.github/workflows/cargo-test-cross.yml @@ -0,0 +1,28 @@ +name: Cargo Test Linux + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + CARGO_TERM_COLOR: always + +jobs: + build: + + 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] + + steps: + - uses: actions/checkout@v2 + - name: Run check + run: | + rustup default ${{ matrix.rust }} + rustup target add ${{ matrix.target }} + cargo check --target ${{ matrix.target }} From 81d032ceb31dd34e7bd4d6bc5125c04991797d87 Mon Sep 17 00:00:00 2001 From: "wudi.daniel" Date: Thu, 4 Nov 2021 13:04:04 +0800 Subject: [PATCH 5/8] fix tests name --- .github/workflows/cargo-test-cross.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cargo-test-cross.yml b/.github/workflows/cargo-test-cross.yml index 3c58cc8..2510378 100644 --- a/.github/workflows/cargo-test-cross.yml +++ b/.github/workflows/cargo-test-cross.yml @@ -1,4 +1,4 @@ -name: Cargo Test Linux +name: Cargo Test Cross on: push: From d1626f87c590396fa02d2bdb195baf0d6488d260 Mon Sep 17 00:00:00 2001 From: "wudi.daniel" Date: Thu, 4 Nov 2021 13:06:29 +0800 Subject: [PATCH 6/8] fix tests name --- .../workflows/{cargo-test-cross.yml => cargo-cross-build.yml} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename .github/workflows/{cargo-test-cross.yml => cargo-cross-build.yml} (93%) diff --git a/.github/workflows/cargo-test-cross.yml b/.github/workflows/cargo-cross-build.yml similarity index 93% rename from .github/workflows/cargo-test-cross.yml rename to .github/workflows/cargo-cross-build.yml index 2510378..a588f9e 100644 --- a/.github/workflows/cargo-test-cross.yml +++ b/.github/workflows/cargo-cross-build.yml @@ -1,4 +1,4 @@ -name: Cargo Test Cross +name: Cargo Cross Build on: push: @@ -25,4 +25,4 @@ jobs: run: | rustup default ${{ matrix.rust }} rustup target add ${{ matrix.target }} - cargo check --target ${{ matrix.target }} + cargo build --verbose --target ${{ matrix.target }} From 0499264185ade1584f9e9c4b4be218a79d5f4546 Mon Sep 17 00:00:00 2001 From: "wudi.daniel" Date: Thu, 4 Nov 2021 13:06:43 +0800 Subject: [PATCH 7/8] fix tests name --- .github/workflows/cargo-cross-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cargo-cross-build.yml b/.github/workflows/cargo-cross-build.yml index a588f9e..260bf30 100644 --- a/.github/workflows/cargo-cross-build.yml +++ b/.github/workflows/cargo-cross-build.yml @@ -21,7 +21,7 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Run check + - name: Run build run: | rustup default ${{ matrix.rust }} rustup target add ${{ matrix.target }} From 0a8894c6240c9dbcb01e221bf435433592a3eed4 Mon Sep 17 00:00:00 2001 From: "wudi.daniel" Date: Tue, 14 Dec 2021 10:31:47 +0800 Subject: [PATCH 8/8] fix format --- .github/workflows/cargo-cross-build.yml | 32 ++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cargo-cross-build.yml b/.github/workflows/cargo-cross-build.yml index 260bf30..13bf85b 100644 --- a/.github/workflows/cargo-cross-build.yml +++ b/.github/workflows/cargo-cross-build.yml @@ -17,7 +17,37 @@ jobs: 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] + 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 steps: - uses: actions/checkout@v2