Skip to content

Commit

Permalink
chore: add publish script for urdf and stl + unify all releases by de… (
Browse files Browse the repository at this point in the history
#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>
  • Loading branch information
Vrixyz and sebcrozet authored Sep 3, 2024
1 parent 58785ce commit 98f9199
Show file tree
Hide file tree
Showing 7 changed files with 82 additions and 43 deletions.
8 changes: 8 additions & 0 deletions .github/workflows/rapier-ci-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
14 changes: 6 additions & 8 deletions crates/rapier3d-urdf/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
};
Expand Down Expand Up @@ -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> {
Expand All @@ -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;
Expand Down
14 changes: 14 additions & 0 deletions publish-all.sh
Original file line number Diff line number Diff line change
@@ -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
26 changes: 0 additions & 26 deletions publish-testbeds.sh

This file was deleted.

11 changes: 11 additions & 0 deletions scripts/publish-extra-formats.sh
Original file line number Diff line number Diff line change
@@ -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
18 changes: 9 additions & 9 deletions publish.sh → scripts/publish-rapier.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#! /bin/bash
#!/bin/bash

tmp=$(mktemp -d)

Expand All @@ -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"
34 changes: 34 additions & 0 deletions scripts/publish-testbeds.sh
Original file line number Diff line number Diff line change
@@ -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"

0 comments on commit 98f9199

Please sign in to comment.