Flatroof garage #93
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Tests | |
| on: | |
| push: | |
| branches: [main, dev] | |
| pull_request: | |
| # Run on all pull requests | |
| types: [opened, synchronize, reopened] | |
| # Add concurrency to cancel in-progress jobs when a new commit is pushed to the PR | |
| # This avoids CI jobs "stacking up" for the same PR | |
| concurrency: | |
| # Cancel in-progress runs when a new workflow with the same concurrency group is queued | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| test: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| python-version: ["3.11"] | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e . | |
| pip install pytest pytest-cov pytest-xdist | |
| - name: Generate OCHRE golden results | |
| if: matrix.os == 'macos-latest' | |
| run: python test/resstock_golden/generate_ochre_result.py | |
| - name: Run tests | |
| run: | | |
| pytest test/ -v --tb=short -n auto --cov=ochre --cov-report=xml --cov-report=term-missing ${{ matrix.os != 'macos-latest' && '-m "not golden"' || '' }} | |
| - name: Compare OCHRE vs EnergyPlus | |
| if: matrix.os == 'macos-latest' | |
| run: python test/resstock_golden/compare_ochre_and_eplus.py | |
| - name: Commit comparison CSVs | |
| if: matrix.os == 'macos-latest' && github.event_name == 'pull_request' | |
| run: | | |
| git config user.name "github-actions[bot]" | |
| git config user.email "github-actions[bot]@users.noreply.github.com" | |
| git fetch origin ${{ github.head_ref }} | |
| git checkout -B ${{ github.head_ref }} FETCH_HEAD | |
| git add test/resstock_golden/comparison/ | |
| git diff --cached --quiet || git commit -m "Update EPlus comparison CSVs" | |
| git push origin ${{ github.head_ref }} | |
| - name: Upload coverage to Codecov | |
| if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11' | |
| uses: codecov/codecov-action@v4 | |
| with: | |
| files: ./coverage.xml | |
| fail_ci_if_error: false | |
| verbose: true | |
| env: | |
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - name: Install linting tools | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e ".[dev]" | |
| - name: Run ruff linter | |
| run: ruff check . --output-format=github | |
| continue-on-error: true | |
| - name: Run ruff formatter check | |
| run: ruff format . --check --diff |