From 870327d7f944712744d3c1fa5211c5d73dafdef3 Mon Sep 17 00:00:00 2001 From: Constantine Nathanson <35217733+const-cloudinary@users.noreply.github.com> Date: Mon, 23 Dec 2024 15:21:40 +0200 Subject: [PATCH] Migrate to GitHub Actions --- .github/workflows/test.yml | 55 ++++++++++++++++++++++++++++++++++++++ .travis.yml | 42 ----------------------------- README.md | 10 +++---- pyproject.toml | 13 ++++----- setup.py | 13 ++++----- tox.ini | 15 ++++++----- 6 files changed, 78 insertions(+), 70 deletions(-) create mode 100644 .github/workflows/test.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..55adcfc2 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,55 @@ +name: Cloudinary Python SDK Test + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + test: + runs-on: ubuntu-latest + + strategy: + matrix: + python-version: + - 2.7 + - 3.9 + - 3.10 + - 3.11 + - 3.12 + - 3.13 + toxenv: + - py27-core + - py39-core + - py310-core + - py311-core + - py312-core + - py313-core + - py27-django111 + - py39-django32 + - py310-django42 + - py311-django42 + - py312-django50 + - py313-django51 + + steps: + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install tox pytest + - name: Set up Cloudinary URL + run: | + export CLOUDINARY_URL=$(bash tools/get_test_cloud.sh) + echo "cloud_name: $(echo $CLOUDINARY_URL | cut -d'@' -f2)" + - name: Run tests + run: | + export PYTHONPATH="${PYTHONPATH}:$(pwd)" + tox -e ${{ matrix.toxenv }} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index abde8122..00000000 --- a/.travis.yml +++ /dev/null @@ -1,42 +0,0 @@ -dist: focal -language: python -matrix: - include: - - python: 2.7 - env: TOXENV=py27-core - - python: 3.7 - env: TOXENV=py37-core - - python: 3.8 - env: TOXENV=py38-core - - python: 3.9 - env: TOXENV=py39-core - - python: 3.10 - env: TOXENV=py310-core - - python: 3.11 - env: TOXENV=py311-core - - python: 2.7 - env: TOXENV=py27-django111 - - python: 3.7 - env: TOXENV=py37-django22 - - python: 3.9 - env: TOXENV=py39-django32 - - python: 3.10 - env: TOXENV=py310-django40 - - python: 3.10 - env: TOXENV=py310-django41 - - python: 3.11 - env: TOXENV=py311-django41 -install: -- pip install tox pytest - -before_script: > - export CLOUDINARY_URL=$(bash tools/get_test_cloud.sh); - echo cloud_name: "$(echo $CLOUDINARY_URL | cut -d'@' -f2)" -script: -- export PYTHONPATH="${PYTHONPATH}:$(pwd)" -- tox -e $TOXENV - -notifications: - email: - recipients: - - sdk_developers@cloudinary.com diff --git a/README.md b/README.md index e116208a..2906913d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Build Status](https://app.travis-ci.com/cloudinary/pycloudinary.svg)](https://app.travis-ci.com/cloudinary/pycloudinary) +[![Tests](https://github.com/cloudinary/pycloudinary/actions/workflows/test.yml/badge.svg)](https://github.com/cloudinary/pycloudinary/actions/workflows/test.yml) [![PyPI Version](https://img.shields.io/pypi/v/cloudinary.svg)](https://pypi.python.org/pypi/cloudinary/) [![PyPI PyVersions](https://img.shields.io/pypi/pyversions/cloudinary.svg)](https://pypi.python.org/pypi/cloudinary/) [![PyPI DjangoVersions](https://img.shields.io/pypi/djversions/cloudinary.svg)](https://pypi.python.org/pypi/cloudinary/) @@ -41,12 +41,12 @@ For the complete documentation, see the [Python SDK Guide](https://cloudinary.co ## Version Support | SDK Version | Python 2.7 | Python 3.x | -| ----------- | ---------- | ---------- | +|-------------|------------|------------| | 1.x | ✔ | ✔ | -| SDK Version | Django 1.11 | Django 2.x | Django 3.x | Django 4.x | -| ----------- | ----------- | ---------- | ---------- | ---------- | -| 1.x | ✔ | ✔ | ✔ | ✔ | +| SDK Version | Django 1.11 | Django 2.x | Django 3.x | Django 4.x | Django 5.x | +|-------------|-------------|------------|------------|------------|------------| +| 1.x | ✔ | ✔ | ✔ | ✔ | ✔ | ## Installation diff --git a/pyproject.toml b/pyproject.toml index af3a2b81..a11685e8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,25 +12,22 @@ classifiers = [ "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.11", - "Framework :: Django :: 2.0", - "Framework :: Django :: 2.1", "Framework :: Django :: 2.2", - "Framework :: Django :: 3.0", - "Framework :: Django :: 3.1", "Framework :: Django :: 3.2", - "Framework :: Django :: 4.0", - "Framework :: Django :: 4.1", + "Framework :: Django :: 4.2", + "Framework :: Django :: 5.0", + "Framework :: Django :: 5.1", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Multimedia :: Graphics", diff --git a/setup.py b/setup.py index 8fc932c9..8c56143e 100644 --- a/setup.py +++ b/setup.py @@ -32,25 +32,22 @@ "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.11", - "Framework :: Django :: 2.0", - "Framework :: Django :: 2.1", "Framework :: Django :: 2.2", - "Framework :: Django :: 3.0", - "Framework :: Django :: 3.1", "Framework :: Django :: 3.2", - "Framework :: Django :: 4.0", - "Framework :: Django :: 4.1", + "Framework :: Django :: 4.2", + "Framework :: Django :: 5.0", + "Framework :: Django :: 5.1", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Multimedia :: Graphics", diff --git a/tox.ini b/tox.ini index 14ab54d4..dee98c68 100644 --- a/tox.ini +++ b/tox.ini @@ -1,22 +1,23 @@ [tox] envlist = - py{27,37,38,39,310,311}-core + py{27,39,310,311,312,313}-core py{27}-django{111} - py{37,38,39,310,311}-django{22,32,40,41} + py{39,310,311,312,313}-django{32,42,50,51} + [testenv] usedevelop = True commands = core: python -m pytest test - django{111,22,32}: django-admin.py test -v2 django_tests {env:D_ARGS:} - django{40,41}: django-admin test -v2 django_tests {env:D_ARGS:} + django{111,32}: django-admin.py test -v2 django_tests {env:D_ARGS:} + django{42,50,51}: django-admin test -v2 django_tests {env:D_ARGS:} passenv = * deps = pytest py27: mock django111: Django>=1.11,<1.12 - django22: Django>=2.2,<2.3 django32: Django>=3.2,<3.3 - django40: Django>=4.0,<4.1 - django41: Django>=4.1,<4.2 + django42: Django>=4.2,<4.3 + django50: Django>=5.0,<5.1 + django51: Django>=5.1,<5.2 setenv = DJANGO_SETTINGS_MODULE=django_tests.settings