Update list of tested filesystem handlers #2
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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| unit-tests: | |
| name: Unit Tests (Python ${{ matrix.python-version }}, ${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| python-version: ["3.11", "3.12", "3.13"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: 'pip' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e "./amitools[vamos]" | |
| pip install "pytest>=7.0" "pytest-cov>=4.0" "pytest-timeout>=2.0" | |
| pip install -e "." --no-deps | |
| - name: Run unit tests | |
| run: pytest tests/unit/ -v --timeout=30 | |
| integration-tests: | |
| name: Integration Tests (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| needs: unit-tests | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| exclude: | |
| # Windows excluded: machine68k segfaults due to opcode table | |
| # over-read (cnvogelg/machine68k#8) and JMP/CAS collision (#9). | |
| # Remove this exclude block once upstream fixes land. | |
| - os: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Set up Python 3.13 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.13" | |
| cache: 'pip' | |
| - name: Clone AmiFUSE-testing fixtures | |
| # Clones to sibling directory of workspace checkout. | |
| # Workspace is typically /home/runner/work/<repo>/<repo>. | |
| run: | | |
| git clone --depth 1 https://github.com/reinauer/AmiFUSE-testing.git ../AmiFUSE-testing | |
| continue-on-error: true | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e "./amitools[vamos]" | |
| pip install "pytest>=7.0" "pytest-cov>=4.0" "pytest-timeout>=2.0" | |
| pip install -e "." --no-deps | |
| - name: Verify machine68k | |
| run: | | |
| python -c "import machine68k; print(f'machine68k {machine68k.__version__}')" | |
| python -c "import machine68k; machine68k.CPU(1); print('CPU probe OK')" | |
| continue-on-error: true | |
| - name: Run integration tests | |
| env: | |
| AMIFUSE_FIXTURE_ROOT: ${{ github.workspace }}/../AmiFUSE-testing | |
| run: pytest tests/integration/ -v --timeout=60 | |
| tools-smoke: | |
| name: Tools Smoke (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| needs: unit-tests | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| exclude: | |
| # Windows excluded: machine68k segfaults due to opcode table | |
| # over-read (cnvogelg/machine68k#8) and JMP/CAS collision (#9). | |
| # Remove this exclude block once upstream fixes land. | |
| - os: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Set up Python 3.13 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.13" | |
| cache: 'pip' | |
| - name: Clone AmiFUSE-testing fixtures | |
| # Clones to sibling directory of workspace checkout. | |
| # Workspace is typically /home/runner/work/<repo>/<repo>. | |
| run: | | |
| git clone --depth 1 https://github.com/reinauer/AmiFUSE-testing.git ../AmiFUSE-testing | |
| continue-on-error: true | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e "./amitools[vamos]" | |
| pip install -e "." --no-deps | |
| - name: Run amifuse_matrix smoke | |
| env: | |
| AMIFUSE_FIXTURE_ROOT: ${{ github.workspace }}/../AmiFUSE-testing | |
| run: python tools/amifuse_matrix.py --fixtures pfs3 sfs ofs --runs 1 --json | |
| - name: Run image_format_smoke | |
| env: | |
| AMIFUSE_FIXTURE_ROOT: ${{ github.workspace }}/../AmiFUSE-testing | |
| run: python tools/image_format_smoke.py --case direct-rdb-pfs3 --json |