Snapshots the current development tree, headlined by proper load combinations (user request): a reusable LoadCombination entity of weighted completed static-case results (e.g. 1.2xDead + 1.6xLive). - core: LoadCombination/LoadCombinationItem entities, Project integration (lookup, unique ids, reference validation) - services: combinations.py (linear superposition + envelope), exported via services __init__ - commands: undoable Add/Delete/Update for combinations - GUI: Load Combinations manager dialog, Run-dialog evaluation, envelope display in Results panel, Combinations tab in Table dock - tests: unit coverage (validation, math, error paths) + integration superposition check vs a single factored run
48 lines
1.4 KiB
Text
48 lines
1.4 KiB
Text
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main, develop]
|
|
pull_request:
|
|
branches: [main, develop]
|
|
|
|
jobs:
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.11"
|
|
- run: pip install ruff mypy
|
|
- run: ruff check src tests
|
|
- run: ruff format --check src tests
|
|
|
|
test:
|
|
needs: lint
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
python-version: ["3.10", "3.11", "3.12"]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: Install Linux Qt deps
|
|
if: runner.os == 'Linux'
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libegl1 libxkbcommon-x11-0 libxcb-icccm4 \
|
|
libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 \
|
|
libxcb-shape0 libxcb-sync1 libxcb-xfixes0 libxcb-xinerama0 \
|
|
libxcb-cursor0 libdbus-1-3 libgl1 libxkbcommon0 xvfb
|
|
- run: pip install -e ".[dev]"
|
|
- name: Run tests (Linux, headless)
|
|
if: runner.os == 'Linux'
|
|
run: xvfb-run -a pytest --cov --cov-report=xml -m "not slow"
|
|
- name: Run tests (Win/Mac)
|
|
if: runner.os != 'Linux'
|
|
run: pytest --cov --cov-report=xml -m "not slow"
|