aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThierry Berger <contact@thierryberger.com>2024-09-03 21:48:10 +0200
committerGitHub <noreply@github.com>2024-09-03 21:48:10 +0200
commit98f9199abc3044779627b859b14f84fff3a97623 (patch)
treee082a17dccd0e40c1ecd91525280dbfcfd6e951d
parent58785ce257367f9e016738c2a87413b0590cc67f (diff)
downloadrapier-98f9199abc3044779627b859b14f84fff3a97623.tar.gz
rapier-98f9199abc3044779627b859b14f84fff3a97623.tar.bz2
rapier-98f9199abc3044779627b859b14f84fff3a97623.zip
chore: add publish script for urdf and stl + unify all releases by de… (#727)
* chore: add publish script for urdf and stl + unify all releases by default * better cross platform publish support * publish in dry run within ci * publish scripts better errors, abort if a publish fails, with an exit code. * chore(rapier_urdf): fix warnings * chore(rapier-urdf): typo fix --------- Co-authored-by: Sébastien Crozet <developer@crozet.re>
-rw-r--r--.github/workflows/rapier-ci-build.yml8
-rw-r--r--crates/rapier3d-urdf/src/lib.rs14
-rwxr-xr-xpublish-all.sh14
-rwxr-xr-xpublish-testbeds.sh26
-rwxr-xr-xscripts/publish-extra-formats.sh11
-rwxr-xr-xscripts/publish-rapier.sh (renamed from publish.sh)18
-rwxr-xr-xscripts/publish-testbeds.sh34
7 files changed, 82 insertions, 43 deletions
diff --git a/.github/workflows/rapier-ci-build.yml b/.github/workflows/rapier-ci-build.yml
index c44704b..32f4a4a 100644
--- a/.github/workflows/rapier-ci-build.yml
+++ b/.github/workflows/rapier-ci-build.yml
@@ -97,3 +97,11 @@ jobs:
- uses: actions/checkout@v4
- name: check typos
uses: crate-ci/typos@v1.23.2
+ publish-dry-run:
+ runs-on: ubuntu-latest
+ env:
+ RUSTFLAGS: -D warnings
+ steps:
+ - uses: actions/checkout@v4
+ - name: publish dry-run
+ run: ./publish-all.sh
diff --git a/crates/rapier3d-urdf/src/lib.rs b/crates/rapier3d-urdf/src/lib.rs
index f6d96bd..1f913da 100644
--- a/crates/rapier3d-urdf/src/lib.rs
+++ b/crates/rapier3d-urdf/src/lib.rs
@@ -32,10 +32,7 @@ use rapier3d::{
JointAxis, MassProperties, MultibodyJointHandle, MultibodyJointSet, RigidBody,
RigidBodyBuilder, RigidBodyHandle, RigidBodySet, RigidBodyType,
},
- geometry::{
- Collider, ColliderBuilder, ColliderHandle, ColliderSet, MeshConverter, SharedShape,
- TriMeshFlags,
- },
+ geometry::{Collider, ColliderBuilder, ColliderHandle, ColliderSet, SharedShape, TriMeshFlags},
math::{Isometry, Point, Real, Vector},
na,
};
@@ -493,7 +490,7 @@ fn urdf_to_rigid_body(options: &UrdfLoaderOptions, inertial: &Inertial) -> Rigid
fn urdf_to_collider(
options: &UrdfLoaderOptions,
- mesh_dir: &Path,
+ _mesh_dir: &Path, // NOTO: this isn’t used if there is no external mesh feature enabled (like stl).
geometry: &Geometry,
origin: &Pose,
) -> Option<Collider> {
@@ -514,17 +511,18 @@ fn urdf_to_collider(
Geometry::Sphere { radius } => SharedShape::ball(*radius as Real),
Geometry::Mesh { filename, scale } => {
let path: &Path = filename.as_ref();
- let scale = scale
+ let _scale = scale
.map(|s| Vector::new(s.x as Real, s.y as Real, s.z as Real))
.unwrap_or_else(|| Vector::<Real>::repeat(1.0));
match path.extension().and_then(|ext| ext.to_str()) {
#[cfg(feature = "stl")]
Some("stl") | Some("STL") => {
- let full_path = mesh_dir.join(filename);
+ use rapier3d::geometry::MeshConverter;
+ let full_path = _mesh_dir.join(filename);
match rapier3d_stl::load_from_path(
full_path,
MeshConverter::TriMeshWithFlags(options.trimesh_flags),
- scale,
+ _scale,
) {
Ok(stl_shape) => {
shape_transform = stl_shape.pose;
diff --git a/publish-all.sh b/publish-all.sh
new file mode 100755
index 0000000..d773b6b
--- /dev/null
+++ b/publish-all.sh
@@ -0,0 +1,14 @@
+#! /bin/bash
+
+if [[ "$PUBLISH_MODE" == 1 ]]
+then
+ ./scripts/publish-rapier.sh &&
+ ./scripts/publish-testbeds.sh &&
+ ./scripts/publish-extra-formats.sh
+else
+ echo "Running in dry mode, re-run with \`PUBLISH_MODE=1 publish-all.sh\` to actually publish."
+
+ DRY_RUN="--dry-run" ./scripts/publish-rapier.sh &&
+ DRY_RUN="--dry-run" ./scripts/publish-testbeds.sh &&
+ DRY_RUN="--dry-run" ./scripts/publish-extra-formats.sh
+fi \ No newline at end of file
diff --git a/publish-testbeds.sh b/publish-testbeds.sh
deleted file mode 100755
index cf2b259..0000000
--- a/publish-testbeds.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#! /bin/bash
-
-tmp=$(mktemp -d)
-
-echo "$tmp"
-
-cp -r src "$tmp"/.
-cp -r src_testbed "$tmp"/.
-cp -r crates "$tmp"/.
-cp -r LICENSE README.md "$tmp"/.
-
-### Publish the 2D version.
-gsed 's#\.\./\.\./src#src#g' crates/rapier_testbed2d/Cargo.toml > "$tmp"/Cargo.toml
-gsed -i 's#\.\./rapier#./crates/rapier#g' "$tmp"/Cargo.toml
-currdir=$(pwd)
-cd "$tmp" && cargo publish
-cd "$currdir" || exit
-
-
-### Publish the 3D version.
-gsed 's#\.\./\.\./src#src#g' crates/rapier_testbed3d/Cargo.toml > "$tmp"/Cargo.toml
-gsed -i 's#\.\./rapier#./crates/rapier#g' "$tmp"/Cargo.toml
-cp -r LICENSE README.md "$tmp"/.
-cd "$tmp" && cargo publish
-
-rm -rf "$tmp"
diff --git a/scripts/publish-extra-formats.sh b/scripts/publish-extra-formats.sh
new file mode 100755
index 0000000..1d9a990
--- /dev/null
+++ b/scripts/publish-extra-formats.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+currdir=$(pwd)
+
+### Publish rapier3d-stl.
+cd "crates/rapier3d-stl" && cargo publish $DRY_RUN || exit 1
+cd "$currdir" || exit 2
+
+### Publish rapier3d-urdf.
+cd "crates/rapier3d-urdf" && cargo publish $DRY_RUN || exit 1
+cd "$currdir" || exit 2 \ No newline at end of file
diff --git a/publish.sh b/scripts/publish-rapier.sh
index 56c6db0..8a1ab14 100755
--- a/publish.sh
+++ b/scripts/publish-rapier.sh
@@ -1,4 +1,4 @@
-#! /bin/bash
+#!/bin/bash
tmp=$(mktemp -d)
@@ -10,26 +10,26 @@ cp -r LICENSE README.md "$tmp"/.
### Publish the 2D version.
sed 's#\.\./\.\./src#src#g' crates/rapier2d/Cargo.toml > "$tmp"/Cargo.toml
currdir=$(pwd)
-cd "$tmp" && cargo publish
-cd "$currdir" || exit
+cd "$tmp" && cargo publish $DRY_RUN || exit 1
+cd "$currdir" || exit 2
### Publish the 3D version.
sed 's#\.\./\.\./src#src#g' crates/rapier3d/Cargo.toml > "$tmp"/Cargo.toml
cp -r LICENSE README.md "$tmp"/.
-cd "$tmp" && cargo publish
-cd "$currdir" || exit
+cd "$tmp" && cargo publish $DRY_RUN || exit 1
+cd "$currdir" || exit 2
### Publish the 2D f64 version.
sed 's#\.\./\.\./src#src#g' crates/rapier2d-f64/Cargo.toml > "$tmp"/Cargo.toml
currdir=$(pwd)
-cd "$tmp" && cargo publish
-cd "$currdir" || exit
+cd "$tmp" && cargo publish $DRY_RUN || exit 1
+cd "$currdir" || exit 2
### Publish the 3D f64 version.
sed 's#\.\./\.\./src#src#g' crates/rapier3d-f64/Cargo.toml > "$tmp"/Cargo.toml
cp -r LICENSE README.md "$tmp"/.
-cd "$tmp" && cargo publish
+cd "$tmp" && cargo publish $DRY_RUN || exit 1
-rm -rf "$tmp"
+rm -rf "$tmp" \ No newline at end of file
diff --git a/scripts/publish-testbeds.sh b/scripts/publish-testbeds.sh
new file mode 100755
index 0000000..92124fd
--- /dev/null
+++ b/scripts/publish-testbeds.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+gsed -v >> /dev/null
+if [ $? == 0 ]; then
+ gsed=gsed
+else
+ # Hopefully installed sed is the gnu one.
+ gsed=sed
+fi
+
+tmp=$(mktemp -d)
+
+echo "$tmp"
+
+cp -r src "$tmp"/.
+cp -r src_testbed "$tmp"/.
+cp -r crates "$tmp"/.
+cp -r LICENSE README.md "$tmp"/.
+
+### Publish the 2D version.
+$gsed 's#\.\./\.\./src#src#g' crates/rapier_testbed2d/Cargo.toml > "$tmp"/Cargo.toml
+$gsed -i 's#\.\./rapier#./crates/rapier#g' "$tmp"/Cargo.toml
+currdir=$(pwd)
+cd "$tmp" && cargo publish $DRY_RUN
+cd "$currdir" || exit
+
+
+### Publish the 3D version.
+$gsed 's#\.\./\.\./src#src#g' crates/rapier_testbed3d/Cargo.toml > "$tmp"/Cargo.toml
+$gsed -i 's#\.\./rapier#./crates/rapier#g' "$tmp"/Cargo.toml
+cp -r LICENSE README.md "$tmp"/.
+cd "$tmp" && cargo publish $DRY_RUN
+
+rm -rf "$tmp"