Skip to content
This repository has been archived by the owner on Nov 4, 2024. It is now read-only.

Commit

Permalink
fix: allow running tox with different python versions
Browse files Browse the repository at this point in the history
tox would enforce python3.8 without this change
Now we install tox in that specific python and then run tox from it
  • Loading branch information
Danyal-Faheem authored and feanil committed Jun 4, 2024
1 parent 53c3d04 commit 94c79db
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 5 deletions.
19 changes: 16 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,18 +30,31 @@ jobs:
- name: Build Docker
run: |
docker compose -f .github/docker-compose-ci.yml up -d
docker exec ecomworker bash -c "sudo apt-get update -y; sudo apt-get install python${{ matrix.python-version }} python${{ matrix.python-version }}-dev -y;"
docker exec ecomworker bash -c "
sudo apt-get update -y &&
sudo apt-get install python${{ matrix.python-version }} \
python${{ matrix.python-version }}-dev \
python${{ matrix.python-version }}-distutils -y &&
curl -sS https://bootstrap.pypa.io/get-pip.py | python${{ matrix.python-version }};"
# Need to install pip from source here^ otherwise some packages don't get installed
- name: Format Python Version
run: |
PYTHON_VERSION=${{ matrix.python-version }}
FORMATTED_VERSION=${PYTHON_VERSION/3./py3}
echo "PYTHON_VERSION=$FORMATTED_VERSION" >> $GITHUB_ENV
- name: Install dependencies
run: |
docker exec -t ecomworker bash -c "
cd /edx/app/ecomworker/ecomworker &&
python${{ matrix.python-version }} -m pip install tox
"
- name: Run Tests
env:
TARGETS: ${{ matrix.test-target }}
run: |
docker exec ecomworker bash -c "cd /edx/app/ecomworker/ecomworker && PYTHON_VERSION=$PYTHON_VERSION make $TARGETS"
docker exec ecomworker bash -c "
cd /edx/app/ecomworker/ecomworker &&
PYTHON_VERSION=${{ matrix.python-version }} PYTHON_ENV=$PYTHON_VERSION make $TARGETS"
- name: Run Coverage
if: matrix.test-target == 'test' && matrix.python-version == '3.8'
Expand Down
5 changes: 3 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
PACKAGE = ecommerce_worker
PYTHON_VERSION_VAR=$(if $(PYTHON_VERSION),$(PYTHON_VERSION),py312)
PYTHON_VERSION_VAR=$(if $(PYTHON_VERSION),$(PYTHON_VERSION),3.12)
PYTHON_ENV_VAR=$(if $(PYTHON_ENV),$(PYTHON_ENV),py312)

help: ## display this help message
@echo "Please use \`make <target>' where <target> is one of"
Expand All @@ -15,7 +16,7 @@ worker: ## start the Celery worker process
celery -A ecommerce_worker worker --app=$(PACKAGE).celery_app:app --loglevel=info --queue=fulfillment,email_marketing

test: requirements_tox ## run unit tests and report on coverage
tox -e ${PYTHON_VERSION_VAR}
python${PYTHON_VERSION_VAR} -m tox -e ${PYTHON_ENV_VAR}

quality: requirements_tox ## run pep8 and pylint
tox -e quality
Expand Down

0 comments on commit 94c79db

Please sign in to comment.