From 2d57baef9ed00a46f303c073cea209461d156258 Mon Sep 17 00:00:00 2001 From: Usama Sadiq Date: Wed, 3 Apr 2024 14:06:58 +0500 Subject: [PATCH 1/2] feat: add python 311 support --- .github/workflows/ci.yml | 20 +++++++++++++------- tox.ini | 2 +- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a009cb26..8700fade 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,10 +14,8 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: - - ubuntu-20.04 - python-version: - - 3.8 + os: ['ubuntu-20.04'] + python-version: ['3.8', '3.11'] targets: [ 'quality','main.test','docs' ] steps: @@ -27,13 +25,21 @@ jobs: with: python-version: ${{ matrix.python-version }} - - name: Start Container - run: docker-compose -f .github/docker-compose-ci.yml up -d - - name: Install dependencies run: | pip install -r requirements/pip.txt pip install -r requirements/ci.txt + + - name: Start Container + run: docker-compose -f .github/docker-compose-ci.yml up -d + + - name: Install Python 3.11 + if: matrix.python-version == '3.11' + run: docker exec -t analytics_api_testing bash -c "apt-get install -y python3.11" + + - name: Create symbolic link for Python 3.11 + if: matrix.python-version == '3.11' + run: docker exec -t analytics_api_testing bash -c "ln -sf /usr/bin/python3.11 /usr/local/bin/python3" - name: Run Tests run: docker exec -t analytics_api_testing bash -c "cd /edx/app/analytics_api/analytics_api/ diff --git a/tox.ini b/tox.ini index d188d1d4..a5bcb2c7 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] skipsdist = True -envlist = py38-django{42} +envlist = py{38, 311}-django{42} [testenv] passenv = From f6440cea9ab358c2f50a0cacc699d9c77e0a1110 Mon Sep 17 00:00:00 2001 From: Usama Sadiq Date: Wed, 3 Apr 2024 14:08:52 +0500 Subject: [PATCH 2/2] build: update ci workflow --- .github/workflows/ci.yml | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8700fade..1c17bab2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,25 +25,32 @@ jobs: with: python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - pip install -r requirements/pip.txt - pip install -r requirements/ci.txt - - name: Start Container run: docker-compose -f .github/docker-compose-ci.yml up -d - name: Install Python 3.11 if: matrix.python-version == '3.11' - run: docker exec -t analytics_api_testing bash -c "apt-get install -y python3.11" + run: docker exec -t analytics_api_testing bash -c "apt-get update + && apt-get install -y software-properties-common && add-apt-repository ppa:deadsnakes/ppa -y + && apt-get update && apt-get install -y python3.11" - name: Create symbolic link for Python 3.11 if: matrix.python-version == '3.11' run: docker exec -t analytics_api_testing bash -c "ln -sf /usr/bin/python3.11 /usr/local/bin/python3" + - name: Set TOXENV + id: set-toxenv + run: | + if [[ ${{ matrix.python-version }} == '3.8' ]]; then + echo "::set-output name=toxenv::py38-django42" + elif [[ ${{ matrix.python-version }} == '3.11' ]]; then + echo "::set-output name=toxenv::py311-django42" + fi + - name: Run Tests - run: docker exec -t analytics_api_testing bash -c "cd /edx/app/analytics_api/analytics_api/ - && export TOXENV=django42 && make test.requirements tox.requirements ${{ matrix.targets }}" + run: | + docker exec -t analytics_api_testing bash -c "cd /edx/app/analytics_api/analytics_api/ + && export TOXENV=${{ steps.set-toxenv.outputs.toxenv }} && make test.requirements tox.requirements ${{ matrix.targets }}" - name: Run Coverage if: matrix.python-version == '3.8' && matrix.targets=='main.test'