chore: Python 3.12 (SCE-16) #3373
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: Push Tests | |
on: | |
push: | |
branches: main | |
pull_request: | |
branches: "*" | |
env: | |
JEST_ENV: prod | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: | | |
git fetch --depth=1 origin +${{github.base_ref}} | |
- name: Set up Python 3.12 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
- name: Node cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: Install dependencies | |
run: | | |
pip install flake8 | |
pip install black | |
cd client | |
npm install | |
- name: Format with black and lint with flake8 | |
run: | | |
make lint-server | |
- name: Lint src with eslint | |
working-directory: ./client | |
run: | | |
npx eslint src __tests__ | |
unit-test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3.12 (pyenv) # pyenv needed for mlflow in cli annotate tests | |
uses: gabrielfalcao/pyenv-action@v9 | |
with: | |
default: 3.12 | |
command: pip install -U pip # upgrade pip after installing python | |
- run: pip install virtualenv # virtualenv needed for mlflow in cli annotate tests | |
- name: Python cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
- name: Node cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: Install dependencies | |
run: make pydist install-dist dev-env-server | |
- name: Unit tests | |
run: | | |
make unit-test-server unit-test-client | |
bash <(curl -s https://codecov.io/bash) -y .codecov.yml -k server -cF server,python,unitTest | |
cd client && ./node_modules/codecov/bin/codecov --yml=../.codecov.yml --root=../ --gcov-root=../ -C -F frontend,javascript,unitTest | |
smoke-tests: | |
runs-on: macos-latest | |
timeout-minutes: 20 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3.12 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
- name: Python cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
- name: Node cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: Install dependencies | |
run: | | |
pip install setuptools | |
make pydist install-dist | |
- name: Smoke tests (without annotations feature) | |
run: | | |
cd client && make smoke-test | |
./node_modules/codecov/bin/codecov --yml=../.codecov.yml --root=../ --gcov-root=../ -C -F frontend,javascript,smokeTest | |
# TODO: reinstate: https://github.com/chanzuckerberg/cellxgene/issues/2544 | |
# smoke-tests-annotations: | |
# runs-on: ubuntu-latest | |
# timeout-minutes: 20 | |
# steps: | |
# - uses: actions/checkout@v2 | |
# - name: Set up Python 3.9 | |
# uses: actions/setup-python@v4 | |
# with: | |
# python-version: 3.9 | |
# - name: Python cache | |
# uses: actions/cache@v1 | |
# with: | |
# path: ~/.cache/pip | |
# key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }} | |
# restore-keys: | | |
# ${{ runner.os }}-pip- | |
# - name: Node cache | |
# uses: actions/cache@v1 | |
# with: | |
# path: ~/.npm | |
# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
# restore-keys: | | |
# ${{ runner.os }}-node- | |
# - name: Install dependencies | |
# run: make pydist install-dist | |
# - name: Smoke tests (with annotations feature) | |
# run: | | |
# cd client && make smoke-test-annotations | |
# ./node_modules/codecov/bin/codecov --yml=../.codecov.yml --root=../ --gcov-root=../ -C -F frontend,javascript,smokeTestAnnotations |