Skip to content

v1.0.0-MATLABagent, Interactive Mode #79

v1.0.0-MATLABagent, Interactive Mode

v1.0.0-MATLABagent, Interactive Mode #79

name: Simulation Bridge CI
on:
pull_request:
paths:
- "simulation_bridge/**"
- ".github/workflows/simulation-bridge-ci.yml"
jobs:
ci:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
# ───── 1. Checkout ─────
- uses: actions/checkout@v4
# ───── 2. Python + Poetry ─────
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install Poetry
env:
POETRY_HOME: ${{ runner.temp }}/poetry
run: |
python -m pip install --upgrade pip
curl -sSL https://install.python-poetry.org | python -
- name: Add Poetry to PATH (Linux/macOS)
if: runner.os != 'Windows'
run: echo "${{ runner.temp }}/poetry/bin" >> $GITHUB_PATH
- name: Add Poetry to PATH (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: echo "${{ runner.temp }}\poetry\bin" |
Out-File -FilePath $env:GITHUB_PATH -Encoding utf8
# ───── 3. Install deps once ─────
- name: Install dev dependencies
run: poetry install --with dev
# ───── 4. Format (non-blocking) ─────
- name: Check formatting (non-blocking)
continue-on-error: true
run: poetry run autopep8 --recursive --diff simulation_bridge
# ───── 5. Lint ─────
- name: Run pylint (min score 9.0)
run: poetry run pylint simulation_bridge --fail-under=9
# ───── 6. Tests ─────
- name: Run pytest with coverage
run: poetry run pytest
- name: Upload coverage to Codecov
if: matrix.os == 'ubuntu-latest'
uses: codecov/codecov-action@v5
with:
files: coverage.xml
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
# ───── 7. Build + dist artefacts ─────
- name: Install runtime dependencies
run: poetry install --only main
- name: Build wheel and sdist
run: |
poetry build --format wheel
poetry build --format sdist
- name: Upload dist artefacts
if: matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v4
with:
name: simulation-bridge-dist
path: |
dist/*.whl
dist/*.tar.gz
retention-days: 1