name: Code check on: push: branches: [master, "release/*"] pull_request: branches: [master, "release/*"] paths: - ".actions/**" - ".github/workflows/code-checks.yml" - "requirements/**" - "src/**" - "pyproject.toml" # includes mypy config - "!requirements/docs.txt" - "!requirements/*/docs.txt" - "!*.md" - "!**/*.md" concurrency: group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref }} cancel-in-progress: ${{ ! (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/release/')) }} defaults: run: shell: bash jobs: mypy: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.10.6' # Note: This uses an internal pip API and may not always work # https://github.com/actions/cache/blob/master/examples.md#multiple-oss-in-a-workflow - name: Cache pip uses: actions/cache@v3 with: path: ~/.cache/pip key: pip-${{ hashFiles('requirements/pytorch/base.txt') }} restore-keys: pip- enableCrossOsArchive: true - name: Install dependencies run: | pip install mypy==0.982 # TODO: pull this verion deom requirements/test.txt pip install torch==1.12 --find-links https://download.pytorch.org/whl/cpu/torch_stable.html python ./requirements/pytorch/adjust-versions.py requirements/pytorch/extra.txt # todo: adjust requirements for both code-bases pip install \ -r requirements/fabric/base.txt \ -r requirements/pytorch/base.txt \ -r requirements/pytorch/extra.txt \ -r requirements/app/base.txt \ -r requirements/app/cloud.txt \ -r requirements/app/ui.txt \ --find-links https://download.pytorch.org/whl/cpu/torch_stable.html pip list - name: Build package run: python setup.py build - name: Check typing run: | mkdir .mypy_cache mypy