From 6a22e84caf7f56689a883d3f3c550f305a3d1cf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Crozet?= Date: Mon, 28 Sep 2020 11:33:37 +0200 Subject: [PATCH 01/10] Start setting-up a github-action workflow. --- .github/workflows/rust.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/rust.yml diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 0000000..3c13d1b --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,22 @@ +name: Rust + +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: Build + run: cargo build --verbose + - name: Run tests + run: cargo test --verbose From 65b9d3a7a7139e5c8fac8c3c5d34b0aaf816fbe5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Crozet=20S=C3=A9bastien?= Date: Mon, 28 Sep 2020 11:42:33 +0200 Subject: [PATCH 02/10] Actions: install dependencies. --- .github/workflows/rust.yml | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 3c13d1b..0b99577 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -16,7 +16,26 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Build - run: cargo build --verbose - - name: Run tests - run: cargo test --verbose + - run: apt-get install -y cmake libxcb-composite0-dev + - name: Build rapier2d + run: cargo build --verbose -p rapier2d; + - name: Build rapier3d + run: cargo build --verbose -p rapier 3d + - name: Build rapier2d SIMD + command: cd build/rapier2d; cargo build --verbose --features simd-stable; + - name: Build rapier3d SIMD + command: cd build/rapier3d; cargo build --verbose --features simd-stable; + - name: Build rapier2d SIMD Parallel + command: cd build/rapier2d; cargo build --verbose --features simd-stable --features parallel; + - name: Build rapier3d SIMD Parallel + command: cd build/rapier3d; cargo build --verbose --features simd-stable --features parallel; + - name: Cest + command: cargo test + - name: Check rapier_testbed2d + command: cargo check --verbose -p rapier_testbed2d; + - name: Check rapier_testbed3d + command: cargo check --verbose -p rapier_testbed3d; + - name: Check rapier-examples-2d + command: cargo check -j 1 --verbose -p rapier-examples-2d; + - name: Check rapier-examples-3d + command: cargo check -j 1 --verbose -p rapier-examples-3d; From d3589b24ce59017fcf83c06f34ab4ba1cc098129 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Crozet=20S=C3=A9bastien?= Date: Mon, 28 Sep 2020 11:43:44 +0200 Subject: [PATCH 03/10] Actions: use run instead of command. --- .github/workflows/rust.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 0b99577..ac5b89b 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -22,20 +22,20 @@ jobs: - name: Build rapier3d run: cargo build --verbose -p rapier 3d - name: Build rapier2d SIMD - command: cd build/rapier2d; cargo build --verbose --features simd-stable; + run: cd build/rapier2d; cargo build --verbose --features simd-stable; - name: Build rapier3d SIMD - command: cd build/rapier3d; cargo build --verbose --features simd-stable; + run: cd build/rapier3d; cargo build --verbose --features simd-stable; - name: Build rapier2d SIMD Parallel - command: cd build/rapier2d; cargo build --verbose --features simd-stable --features parallel; + run: cd build/rapier2d; cargo build --verbose --features simd-stable --features parallel; - name: Build rapier3d SIMD Parallel - command: cd build/rapier3d; cargo build --verbose --features simd-stable --features parallel; + run: cd build/rapier3d; cargo build --verbose --features simd-stable --features parallel; - name: Cest - command: cargo test + run: cargo test - name: Check rapier_testbed2d - command: cargo check --verbose -p rapier_testbed2d; + run: cargo check --verbose -p rapier_testbed2d; - name: Check rapier_testbed3d - command: cargo check --verbose -p rapier_testbed3d; + run: cargo check --verbose -p rapier_testbed3d; - name: Check rapier-examples-2d - command: cargo check -j 1 --verbose -p rapier-examples-2d; + run: cargo check -j 1 --verbose -p rapier-examples-2d; - name: Check rapier-examples-3d - command: cargo check -j 1 --verbose -p rapier-examples-3d; + run: cargo check -j 1 --verbose -p rapier-examples-3d; From 25cf3855b328ad4125484155fc36a3455de61606 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Crozet=20S=C3=A9bastien?= Date: Mon, 28 Sep 2020 11:46:28 +0200 Subject: [PATCH 04/10] Actions: use sudo. --- .github/workflows/rust.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index ac5b89b..411938c 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -16,7 +16,7 @@ jobs: steps: - uses: actions/checkout@v2 - - run: apt-get install -y cmake libxcb-composite0-dev + - run: sudo apt-get install -y cmake libxcb-composite0-dev - name: Build rapier2d run: cargo build --verbose -p rapier2d; - name: Build rapier3d From 198385df86c2107d92724e1d5e6434cd259bfc06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Crozet=20S=C3=A9bastien?= Date: Mon, 28 Sep 2020 11:48:58 +0200 Subject: [PATCH 05/10] Actions: fix spurious space. --- .github/workflows/rust.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 411938c..c434c4b 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -20,7 +20,7 @@ jobs: - name: Build rapier2d run: cargo build --verbose -p rapier2d; - name: Build rapier3d - run: cargo build --verbose -p rapier 3d + run: cargo build --verbose -p rapier3d; - name: Build rapier2d SIMD run: cd build/rapier2d; cargo build --verbose --features simd-stable; - name: Build rapier3d SIMD From 15599f36224b3d7ef741bfd7837965488d008467 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Crozet=20S=C3=A9bastien?= Date: Mon, 28 Sep 2020 11:59:26 +0200 Subject: [PATCH 06/10] Actions: add fmt checks and WASM build. --- .../{rust.yml => rapier-ci-build.yml} | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) rename .github/workflows/{rust.yml => rapier-ci-build.yml} (67%) diff --git a/.github/workflows/rust.yml b/.github/workflows/rapier-ci-build.yml similarity index 67% rename from .github/workflows/rust.yml rename to .github/workflows/rapier-ci-build.yml index c434c4b..6f8b053 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rapier-ci-build.yml @@ -1,4 +1,4 @@ -name: Rust +name: Rapier CI build on: push: @@ -10,10 +10,14 @@ env: CARGO_TERM_COLOR: always jobs: - build: - + check-fmt: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Check formatting + run: cargo fmt -- --check + build-native: runs-on: ubuntu-latest - steps: - uses: actions/checkout@v2 - run: sudo apt-get install -y cmake libxcb-composite0-dev @@ -29,7 +33,7 @@ jobs: run: cd build/rapier2d; cargo build --verbose --features simd-stable --features parallel; - name: Build rapier3d SIMD Parallel run: cd build/rapier3d; cargo build --verbose --features simd-stable --features parallel; - - name: Cest + - name: Run tests run: cargo test - name: Check rapier_testbed2d run: cargo check --verbose -p rapier_testbed2d; @@ -39,3 +43,12 @@ jobs: run: cargo check -j 1 --verbose -p rapier-examples-2d; - name: Check rapier-examples-3d run: cargo check -j 1 --verbose -p rapier-examples-3d; + build-wasm: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - run: rustup target add wasm32-unknown-unknown + - name: build rapier2d + run: cd build/rapier2d && cargo build --verbose --features wasm-bindgen --target wasm32-unknown-unknown; + - name: build rapier3d + run: cd build/rapier3d && cargo build --verbose --features wasm-bindgen --target wasm32-unknown-unknown; From 5cd3b5a1dc10970ce81ff67904639649f4a76c41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Crozet=20S=C3=A9bastien?= Date: Mon, 28 Sep 2020 12:11:04 +0200 Subject: [PATCH 07/10] Delete circleci config. --- .circleci/config.yml | 82 -------------------------------------------- 1 file changed, 82 deletions(-) delete mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index c0722a9..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,82 +0,0 @@ -version: 2.1 - -executors: - rust-executor: - docker: - - image: rust:latest - -jobs: - check-fmt: - executor: rust-executor - steps: - - checkout - - run: - name: install rustfmt - command: rustup component add rustfmt - - run: - name: check formatting - command: cargo fmt -- --check - build-native: - executor: rust-executor - steps: - - checkout - - run: apt-get update - - run: apt-get install -y cmake libxcb-composite0-dev - - run: - name: build rapier2d - command: cargo build --verbose -p rapier2d; - - run: - name: build rapier3d - command: cargo build --verbose -p rapier3d; - - run: - name: build rapier2d SIMD - command: cd build/rapier2d; cargo build --verbose --features simd-stable; - - run: - name: build rapier3d SIMD - command: cd build/rapier3d; cargo build --verbose --features simd-stable; - - run: - name: build rapier2d SIMD Parallel - command: cd build/rapier2d; cargo build --verbose --features simd-stable --features parallel; - - run: - name: build rapier3d SIMD Parallel - command: cd build/rapier3d; cargo build --verbose --features simd-stable --features parallel; - - run: - name: test - command: cargo test - - run: - name: check rapier_testbed2d - command: cargo check --verbose -p rapier_testbed2d; - - run: - name: check rapier_testbed3d - command: cargo check --verbose -p rapier_testbed3d; - - run: - name: check rapier-examples-2d - command: cargo check -j 1 --verbose -p rapier-examples-2d; - - run: - name: check rapier-examples-3d - command: cargo check -j 1 --verbose -p rapier-examples-3d; - build-wasm: - executor: rust-executor - steps: - - checkout - - run: - name: install cargo-web - command: cargo install -f cargo-web; - - run: - name: build rapier2d - command: cd build/rapier2d && cargo web build --verbose --features wasm-bindgen --target wasm32-unknown-unknown; - - run: - name: build rapier3d - command: cd build/rapier3d && cargo web build --verbose --features wasm-bindgen --target wasm32-unknown-unknown; - -workflows: - version: 2 - build: - jobs: - - check-fmt - - build-native: - requires: - - check-fmt - - build-wasm: - requires: - - check-fmt From 9e544bc39985b35fd96d8b6a5d1eeaf4a608dd05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Crozet=20S=C3=A9bastien?= Date: Mon, 28 Sep 2020 14:05:46 +0200 Subject: [PATCH 08/10] Add a workflow for sending benchmark requests. --- .github/workflows/rapier-ci-bench.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/rapier-ci-bench.yml diff --git a/.github/workflows/rapier-ci-bench.yml b/.github/workflows/rapier-ci-bench.yml new file mode 100644 index 0000000..2d2745d --- /dev/null +++ b/.github/workflows/rapier-ci-bench.yml @@ -0,0 +1,20 @@ +name: Rapier CI bench + +on: + workflow_dispatch + +jobs: + send-bench-message: + runs-on: ubuntu-latest + steps: + - shell: bash + env: + BENCHBOT_AMQP_USER: ${{ secrets.BENCHBOT_AMQP_USER }} + BENCHBOT_AMQP_PASS: ${{ secrets.BENCHBOT_AMQP_PASS }} + BENCHBOT_AMQP_VHOST: ${{ secrets.BENCHBOT_AMQP_VHOST }} + BENCHBOT_AMQP_HOST: ${{ secrets.BENCHBOT_AMQP_HOST }} + - name: Send 3D bench message + run: curl -u ${BENCHBOT_AMQP_USER}:${BENCHBOT_AMQP_PASS} \ + -i -H "content-type:application/json" -X POST \ + https://${BENCHBOT_AMQP_PASS}/api/exchanges/${BENCHBOT_AMQP_VHOST}//publish \ + -d'{"properties":{},"routing_key":"benchmark","payload":"{ \"repository\":\"https://github.com/dimforge/rapier\", \"branch\":\"$GITHUB_REF\", \"commit\":\"$GITHUB_SHA\" }","payload_encoding":"string"}' \ No newline at end of file From 0691410b830f8f7028903c8da8d4542fa23d45fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Crozet=20S=C3=A9bastien?= Date: Mon, 28 Sep 2020 14:11:36 +0200 Subject: [PATCH 09/10] Attemt to fix benchmark workflow. --- .github/workflows/rapier-ci-bench.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/rapier-ci-bench.yml b/.github/workflows/rapier-ci-bench.yml index 2d2745d..cef9b15 100644 --- a/.github/workflows/rapier-ci-bench.yml +++ b/.github/workflows/rapier-ci-bench.yml @@ -7,13 +7,13 @@ jobs: send-bench-message: runs-on: ubuntu-latest steps: - - shell: bash + - name: Send 3D bench message + shell: bash env: BENCHBOT_AMQP_USER: ${{ secrets.BENCHBOT_AMQP_USER }} BENCHBOT_AMQP_PASS: ${{ secrets.BENCHBOT_AMQP_PASS }} BENCHBOT_AMQP_VHOST: ${{ secrets.BENCHBOT_AMQP_VHOST }} BENCHBOT_AMQP_HOST: ${{ secrets.BENCHBOT_AMQP_HOST }} - - name: Send 3D bench message run: curl -u ${BENCHBOT_AMQP_USER}:${BENCHBOT_AMQP_PASS} \ -i -H "content-type:application/json" -X POST \ https://${BENCHBOT_AMQP_PASS}/api/exchanges/${BENCHBOT_AMQP_VHOST}//publish \ From 94554f075ae354b9b2d15a51301fc15f23d45dc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Crozet=20S=C3=A9bastien?= Date: Mon, 28 Sep 2020 15:03:50 +0200 Subject: [PATCH 10/10] Add branch selector to the CI bench workflow. --- .github/workflows/rapier-ci-bench.yml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/.github/workflows/rapier-ci-bench.yml b/.github/workflows/rapier-ci-bench.yml index cef9b15..89ed247 100644 --- a/.github/workflows/rapier-ci-bench.yml +++ b/.github/workflows/rapier-ci-bench.yml @@ -1,12 +1,19 @@ name: Rapier CI bench on: - workflow_dispatch + push: + branches: [ master ] + pull_request: + branches: [ master ] + workflow_dispatch: jobs: send-bench-message: runs-on: ubuntu-latest steps: + - name: Get the latest commit on PR + id: get-latest-commit + uses: ActionsRML/get-PR-latest-commit@v1 - name: Send 3D bench message shell: bash env: @@ -14,7 +21,9 @@ jobs: BENCHBOT_AMQP_PASS: ${{ secrets.BENCHBOT_AMQP_PASS }} BENCHBOT_AMQP_VHOST: ${{ secrets.BENCHBOT_AMQP_VHOST }} BENCHBOT_AMQP_HOST: ${{ secrets.BENCHBOT_AMQP_HOST }} - run: curl -u ${BENCHBOT_AMQP_USER}:${BENCHBOT_AMQP_PASS} \ - -i -H "content-type:application/json" -X POST \ - https://${BENCHBOT_AMQP_PASS}/api/exchanges/${BENCHBOT_AMQP_VHOST}//publish \ - -d'{"properties":{},"routing_key":"benchmark","payload":"{ \"repository\":\"https://github.com/dimforge/rapier\", \"branch\":\"$GITHUB_REF\", \"commit\":\"$GITHUB_SHA\" }","payload_encoding":"string"}' \ No newline at end of file + BENCHBOT_TARGET_REPO: ${{ github.repository }} + BENCHBOT_TARGET_COMMIT: ${{ steps.get-latest-commit.outputs.latest_commit_sha }} + run: curl -u $BENCHBOT_AMQP_USER:$BENCHBOT_AMQP_PASS + -i -H "content-type:application/json" -X POST + https://$BENCHBOT_AMQP_HOST/api/exchanges/$BENCHBOT_AMQP_VHOST//publish + -d'{"properties":{},"routing_key":"benchmark","payload":"{ \"repository\":\"https://github.com/'$BENCHBOT_TARGET_REPO'\", \"branch\":\"'$GITHUB_REF'\", \"commit\":\"'$BENCHBOT_TARGET_COMMIT'\" }","payload_encoding":"string"}' \ No newline at end of file