Python - test published packages #74
This file contains 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
# This routinely checks that published packages are installable and work | |
# properly. This makes sure that a new version of one of our dependencies is not | |
# breaking our releases. | |
# TODO: test more magika package versions | |
# TODO: check the actual predicted content types | |
name: Python - test published packages | |
on: | |
schedule: | |
- cron: '42 4 * * *' # Run daily | |
workflow_dispatch: | |
pull_request: | |
paths: | |
- '.github/workflows/python-test-published-package.yml' | |
permissions: | |
contents: read | |
jobs: | |
unit-testing: | |
strategy: | |
matrix: | |
python-version: [ "3.8", "3.9", "3.10", "3.11", "3.12" ] | |
os: [ "ubuntu-latest", "macos-latest", "windows-latest" ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4 | |
- name: Setup Python | |
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # pin@v5 | |
with: | |
python-version: '${{ matrix.python-version }}' | |
# uv's oneline below does not work on windows; uv add magika==0.5.1 is known to not work with python 3.8 and 3.9 | |
- if: matrix.os != 'windows-latest' && matrix.python-version != '3.8' && matrix.python-version != '3.9' | |
name: Install uv | |
run: curl -LsSf https://astral.sh/uv/0.4.7/install.sh | sh | |
- if: matrix.os != 'windows-latest' && matrix.python-version != '3.8' && matrix.python-version != '3.9' | |
name: Check that magika can be installed with uv | |
run: mkdir /tmp/test-uv && cd /tmp/test-uv && uv init && uv add magika && cd - && rm -rf /tmp/test-uv | |
- if: matrix.platform.runner == 'windows-latest' | |
name: Check that magika install with uv works on Windows | |
shell: pwsh | |
run: | | |
mkdir C:\test-uv | |
Copy-Item -Path dist\*.whl -Destination C:\test-uv | |
cd C:\test-uv | |
uv init | |
$wheel = Get-ChildItem -Filter *.whl | Select-Object -ExpandProperty Name | |
uv add ".\$wheel" | |
- name: Install magika with pip | |
run: python3 -m pip install magika | |
- run: python3 -c 'import magika; m = magika.Magika(); print(m)' | |
- run: magika --version | |
# The latest published model does not necessarily support detection for | |
# all types in our tests data; thus, for now we just check that the magika | |
# CLI does not crash when scanning the files, without checking the actual | |
# predictions. | |
- run: magika -r tests_data/basic |