diff options
| author | Thierry Berger <contact@thierryberger.com> | 2024-09-03 21:48:10 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-03 21:48:10 +0200 |
| commit | 98f9199abc3044779627b859b14f84fff3a97623 (patch) | |
| tree | e082a17dccd0e40c1ecd91525280dbfcfd6e951d | |
| parent | 58785ce257367f9e016738c2a87413b0590cc67f (diff) | |
| download | rapier-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.yml | 8 | ||||
| -rw-r--r-- | crates/rapier3d-urdf/src/lib.rs | 14 | ||||
| -rwxr-xr-x | publish-all.sh | 14 | ||||
| -rwxr-xr-x | publish-testbeds.sh | 26 | ||||
| -rwxr-xr-x | scripts/publish-extra-formats.sh | 11 | ||||
| -rwxr-xr-x | scripts/publish-rapier.sh (renamed from publish.sh) | 18 | ||||
| -rwxr-xr-x | scripts/publish-testbeds.sh | 34 |
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" |
