enhance(docker): add conda bin into /usr/local/bin, make debug mode happy #88
Workflow file for this run
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
name: Python Client/SDK | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
concurrency: | |
group: '${{ github.workflow }} @ ${{ github.ref }}' | |
cancel-in-progress: true | |
jobs: | |
filter: | |
runs-on: ubuntu-latest | |
outputs: | |
client: ${{ steps.filter.outputs.client }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Check for python files changed | |
uses: getsentry/paths-filter@v2 | |
id: filter | |
with: | |
base: main | |
filters: .github/file-filter.yml | |
codestyle: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
matrix: | |
python-version: | |
- "3.7" | |
- "3.8" | |
- "3.9" | |
- "3.10" | |
- "3.11" | |
needs: | |
- filter | |
if: ${{ (github.event_name == 'pull_request' && needs.filter.outputs.client == 'true') || github.event_name == 'push' }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: ${{matrix.python-version}} | |
architecture: "x64" | |
- name: Get pip cache | |
id: pip-cache-path | |
run: echo "::set-output name=dir::$(pip cache dir)" | |
- name: Cache pip dependencies | |
uses: actions/cache@v3 | |
id: pip-cache | |
with: | |
path: ${{ steps.pip-cache-path.outputs.dir }} | |
key: ${{ runner.os }}-codestyle-${{ hashFiles('client/requirements-dev.txt')}} | |
- name: Install dependencies | |
working-directory: ./client | |
run: | | |
make install-dev-req | |
# force using pydantic v2 to do lint checking | |
python -m pip install -U 'pydantic==2.*' | |
make install-sw | |
- name: Black Format Check | |
working-directory: ./client | |
run: make ci-format-checker | |
- name: Flake8 Lint Check | |
working-directory: ./client | |
run: make ci-lint | |
- name: Mypy Type Check | |
working-directory: ./client | |
run: make ci-mypy | |
- name: Python Import Check | |
working-directory: ./client | |
run: make ci-isort | |
unittest: | |
strategy: | |
matrix: | |
python-version: | |
# related issue: https://github.com/actions/setup-python/issues/682 | |
# Python 3.7.17 in MacOSX will raise "No module named _bz2" exception. | |
# For Example: https://github.com/star-whale/starwhale/actions/runs/5318220340/jobs/9631411188?pr=2371 | |
- "3.7.16" | |
- "3.8" | |
- "3.9" | |
- "3.10" | |
- "3.11" | |
os: | |
- macos-latest | |
- ubuntu-latest | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
needs: | |
- filter | |
if: ${{(github.event_name == 'pull_request' && needs.filter.outputs.client == 'true') || github.event_name == 'push'}} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: ${{matrix.python-version}} | |
architecture: "x64" | |
- name: Get pip cache | |
id: pip-cache-path | |
run: echo "::set-output name=dir::$(pip cache dir)" | |
- name: Cache pip dependencies | |
uses: actions/cache@v3 | |
id: pip-cache | |
with: | |
path: ${{ steps.pip-cache-path.outputs.dir }} | |
key: ${{ runner.os }}-unittest-${{ hashFiles('client/requirements-dev.txt')}} | |
- name: Install dependencies | |
working-directory: ./client | |
run: | | |
make install-dev-req | |
make install-sw | |
export PYDANTIC_VER=$(python -c 'import random;print(random.choice(["1.*", "2.*"]))') | |
echo "install ${PYDANTIC_VER} for unit tests" | |
python -m pip install -U "pydantic==${PYDANTIC_VER}" | |
- name: Git Config | |
run: | | |
git config --global user.name "starwhale-ci" | |
git config --global user.email "[email protected]" | |
- name: Run Unittest | |
working-directory: ./client | |
run: make ut | |
- name: Publish coverage to codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
name: standalone-python${{matrix.python-version}} | |
fail_ci_if_error: false | |
flags: unittests,standalone | |
verbose: true | |
directory: ./client | |
e2e: | |
strategy: | |
matrix: | |
python-version: | |
- "3.7" | |
- "3.8" | |
- "3.9" | |
- "3.10" | |
- "3.11" | |
os: | |
- macos-latest | |
- ubuntu-latest | |
exclude: | |
# https://github.com/pytorch/pytorch/issues/86566 | |
# pytorch does not release python 3.11 wheel package for macosx os yet. | |
- os: macos-latest | |
python-version: "3.11" | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
needs: | |
- filter | |
if: ${{ (github.event_name == 'pull_request' && needs.filter.outputs.client == 'true') || github.event_name == 'push' }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: ${{matrix.python-version}} | |
architecture: "x64" | |
- name: Get pip cache | |
id: pip-cache-path | |
run: echo "::set-output name=dir::$(pip cache dir)" | |
- name: Cache pip dependencies | |
uses: actions/cache@v3 | |
id: pip-cache | |
with: | |
path: ${{ steps.pip-cache-path.outputs.dir }} | |
key: ${{ runner.os }}-e2e-${{ hashFiles('client/requirements-dev.txt')}}-${{ hashFiles('example/mnist/requirements.txt')}} | |
- name: Run end to end test | |
working-directory: . | |
env: | |
GITHUB_ACTION: 1 | |
PYTHON_VERSION: ${{matrix.python-version}} | |
SKIP_UI_BUILD: 1 | |
run: bash scripts/client_test/cli_test.sh sdk simple |