Skip to content

Update to RocketSim 2.2 #311

Update to RocketSim 2.2

Update to RocketSim 2.2 #311

Workflow file for this run

name: Build
on:
push:
tags:
- v*
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build_wheel:
name: build-${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-2022, ubuntu-22.04, macos-14]
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: '3.11'
cache: 'pip'
- name: Install dependencies
run: |
pip3 install wheel numpy cibuildwheel
- name: Build extension for ${{ matrix.os }}
shell: bash
if: matrix.os != 'ubuntu-22.04'
run: |
python3 -m pip wheel . -w dist
for old in dist/rocketsim-*.whl
do
new=$(echo $old | sed -E 's/-(cp[0-9]+)-cp[0-9]+-/-cp39-abi3-/g')
mv $old $new
done
- name: Build extension for ${{ matrix.os }}
if: matrix.os == 'ubuntu-22.04'
run: |
python3 -m cibuildwheel --output-dir dist
for old in dist/rocketsim-*.whl
do
new=$(echo $old | sed -E 's/-(cp[0-9]+)-cp[0-9]+-.*\.whl/-cp39-abi3-manylinux2014_x86_64.whl/g')
mv $old $new
done
- uses: actions/upload-artifact@v6
with:
name: wheel-${{ matrix.os }}
path: dist/rocketsim-*.whl
test_wheel:
name: test-${{ matrix.os }}-python-${{ matrix.pyversion }}
runs-on: ${{ matrix.os }}
needs: build_wheel
strategy:
fail-fast: false
matrix:
os: [windows-2022, ubuntu-22.04, macos-14]
pyversion: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: ${{ matrix.pyversion }}
cache: 'pip'
- name: Install dependencies
run: |
pip3 install numpy PyGLM
- name: Download artifact ${{ matrix.os }}
uses: actions/download-artifact@v7
with:
name: wheel-${{ matrix.os }}
path: dist
- name: Install extension
shell: bash
run: |
pip3 install dist/rocketsim-*.whl
- name: Load collision meshes
uses: actions/cache/restore@v5
id: collision-cache-restore
with:
path: collision_meshes
key: collision-cache
enableCrossOsArchive: true
- name: Download collision meshes
if: steps.collision-cache-restore.outputs.cache-hit != 'true'
run: |
curl -o collision_meshes.tar ${{ secrets.COLLISION_MESHES_URL }}
tar -xf collision_meshes.tar
- name: Save collision meshes
if: steps.collision-cache-restore.outputs.cache-hit != 'true'
uses: actions/cache/save@v5
with:
path: collision_meshes
key: collision-cache
enableCrossOsArchive: true
- name: Run unit tests
run: |
python3 python-mtheall/unit_test.py
- name: Run regression tests
run: |
python3 python-mtheall/regression_test.py
publish_pypi:
name: Publish PyPI
runs-on: ubuntu-latest
needs: test_wheel
if: startsWith(github.ref, 'refs/tags/v')
environment:
name: pypi
url: https://pypi.org/p/RocketSim
permissions:
id-token: write
steps:
- name: Download artifact windows-2022
uses: actions/download-artifact@v7
with:
name: wheel-windows-2022
path: dist
- name: Download artifact ubuntu-22.04
uses: actions/download-artifact@v7
with:
name: wheel-ubuntu-22.04
path: dist
- name: Download artifact macos-14
uses: actions/download-artifact@v7
with:
name: wheel-macos-14
path: dist
- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1