Import properly for tests #4106
Workflow file for this run
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: maincheck | |
| on: | |
| push: | |
| branches: | |
| - master | |
| - '*CI*' | |
| pull_request: | |
| branches: | |
| - '*' | |
| env: | |
| # We run coverage on a middle supported Python so that failures on newest and | |
| # oldest versions return first. | |
| PY_VERSION_WITH_COVERAGE: '3.13' | |
| jobs: | |
| run_tests: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: [3.12, 3.13, 3.14] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| enable-cache: true | |
| cache-dependency-glob: | | |
| pyproject.toml | |
| uv.lock | |
| - name: Install dependencies | |
| run: | | |
| uv sync --locked | |
| - name: Install Ubuntu dependencies | |
| run: ./.github/scripts/install_ubuntu_deps.sh | |
| - name: Setup Lilypond | |
| run: uv run python -c 'from music21 import environment; environment.UserSettings()["lilypondPath"] = "/home/runner/bin/lilypond"' | |
| - name: Run Main Test script | |
| if: ${{ matrix.python-version != env.PY_VERSION_WITH_COVERAGE }} | |
| run: uv run python -c 'from music21.test.testSingleCoreAll import ciMain as ci; ci()' | |
| - name: Run Main Test script with coverage | |
| if: ${{ matrix.python-version == env.PY_VERSION_WITH_COVERAGE }} | |
| run: uv run coverage run -m music21.test.testSingleCoreAll ci | |
| - name: Coveralls | |
| if: ${{ matrix.python-version == env.PY_VERSION_WITH_COVERAGE }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| COVERALLS_SERVICE_NAME: github | |
| run: uv run coveralls | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.14' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| enable-cache: true | |
| cache-dependency-glob: | | |
| pyproject.toml | |
| uv.lock | |
| - name: Install dependencies | |
| run: | | |
| uv sync --locked | |
| - name: Lint with pylint | |
| run: | | |
| uv run pylint -j0 music21 | |
| uv run pylint -j0 documentation | |
| ruff: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.14' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| enable-cache: true | |
| cache-dependency-glob: | | |
| pyproject.toml | |
| uv.lock | |
| - name: Install dependencies | |
| run: | | |
| uv sync --locked | |
| - name: Code-style etc. with Ruff | |
| run: | | |
| uv run ruff check music21 | |
| uv run ruff check documentation | |
| mypy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.14' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| enable-cache: true | |
| cache-dependency-glob: | | |
| pyproject.toml | |
| uv.lock | |
| - name: Install dependencies | |
| run: | | |
| uv sync --locked | |
| - name: Type-check all modules with mypy | |
| run: | | |
| uv run mypy music21 |