From c823f22d3ccf3f7eba6f44db8154cc4894868662 Mon Sep 17 00:00:00 2001 From: Danyal-Faheem Date: Fri, 10 May 2024 15:20:23 +0500 Subject: [PATCH] build: add python 3.11 and python 3.12 ci checks --- .github/workflows/ci.yml | 15 ++++++++++----- Makefile | 4 ++-- tox.ini | 2 +- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e0eba3fc..3be3d559 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-20.04] - python-version: [3.8] + python-version: [3.8, 3.11, 3.12] test-target: [test, quality] steps: @@ -29,17 +29,22 @@ jobs: - name: Build Docker run: | - docker-compose -f .github/docker-compose-ci.yml up -d - docker exec ecomworker bash -c "sudo apt update -y; sudo apt install python3-dev -y;" + 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;" + - name: Format Python Version + run: | + PYTHON_VERSION=${{ matrix.python-version }} + FORMATTED_VERSION=${PYTHON_VERSION/3./py3} + echo "PYTHON_VERSION=$FORMATTED_VERSION" >> $GITHUB_ENV - name: Run Tests env: TARGETS: ${{ matrix.test-target }} run: | - docker exec ecomworker bash -c "cd /edx/app/ecomworker/ecomworker && make $TARGETS" + docker exec ecomworker bash -c "cd /edx/app/ecomworker/ecomworker && PYTHON_VERSION=$PYTHON_VERSION make $TARGETS" - name: Run Coverage - if: matrix.test-target == 'test' + if: matrix.test-target == 'test' && matrix.python-version == '3.8' run: | pip install -U codecov codecov diff --git a/Makefile b/Makefile index d865b0dc..3ffe97d5 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ PACKAGE = ecommerce_worker -PYTHON_VERSION = py38 +PYTHON_VERSION_VAR=$(if $(PYTHON_VERSION),$(PYTHON_VERSION),py312) help: ## display this help message @echo "Please use \`make ' where is one of" @@ -15,7 +15,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} + tox -e ${PYTHON_VERSION_VAR} quality: requirements_tox ## run pep8 and pylint tox -e quality diff --git a/tox.ini b/tox.ini index a073a96b..cc93af0d 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py{38},quality +envlist = py{38, 311, 312},quality skipsdist = true [isort]