Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ name: Python SDK Publish

on:
push:
branches: [ master ]
tags: [ 'v[0-9]+.[0-9]+.[0-9]+' ]
branches: [master]
tags: ["v[0-9]+.[0-9]+.[0-9]+"]

workflow_dispatch:

Expand All @@ -13,11 +13,11 @@ jobs:
if: startsWith(github.ref, 'refs/tags')

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.x'
python-version: "3.x"

- name: Install dependencies
run: |
Expand Down
220 changes: 116 additions & 104 deletions .github/workflows/python-ci.yml
Original file line number Diff line number Diff line change
@@ -1,104 +1,116 @@
name: Python CI

on:
schedule:
- cron: '0 0 * * *'
push:
branches: [ master ]
paths-ignore:
- '**.md'
pull_request:
branches: [ master ]

workflow_dispatch:

jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ["3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
os: [ windows-latest, macos-latest, ubuntu-latest ]
exclude: # Python < v3.8 does not support Apple Silicon ARM64.
- python-version: "3.5"
os: macos-latest
- python-version: "3.6"
os: macos-latest
- python-version: "3.7"
os: macos-latest
include: # So run those legacy versions on Intel CPUs.
- python-version: "3.5"
os: macos-13
- python-version: "3.6"
os: macos-13
- python-version: "3.7"
os: macos-13

steps:
- uses: actions/checkout@v4

- name: Run tests in Docker for legacy Python
if: matrix.os == 'ubuntu-latest' && contains(fromJSON('["3.5","3.6","3.7"]'), matrix.python-version)
run: |
docker run --rm -v ${{ github.workspace }}:/app -w /app python:${{ matrix.python-version }} bash -c "
pip install --upgrade pip &&
pip install pytest pytest-cov parameterized mock flake8 &&
pip install -r requirements.txt &&
flake8 configcatclient --count --show-source --statistics &&
pytest configcatclienttests
"

- name: Set up Python ${{ matrix.python-version }}
if: ${{ !(matrix.os == 'ubuntu-latest' && contains(fromJSON('["3.5","3.6","3.7"]'), matrix.python-version)) }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
env:
# Needed on Ubuntu for Python 3.5 build.
PIP_TRUSTED_HOST: "pypi.python.org pypi.org files.pythonhosted.org"

- name: Install dependencies
if: ${{ !(matrix.os == 'ubuntu-latest' && contains(fromJSON('["3.5","3.6","3.7"]'), matrix.python-version)) }}
run: |
python -m pip install --upgrade pip
pip install pytest pytest-cov parameterized mock flake8
pip install -r requirements.txt

- name: Lint with flake8
if: ${{ !(matrix.os == 'ubuntu-latest' && contains(fromJSON('["3.5","3.6","3.7"]'), matrix.python-version)) }}
run: |
# Statical analysis
flake8 configcatclient --count --show-source --statistics

- name: Test
if: ${{ !(matrix.os == 'ubuntu-latest' && contains(fromJSON('["3.5","3.6","3.7"]'), matrix.python-version)) }}
run: pytest configcatclienttests


coverage:
needs: [ test ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest pytest-cov parameterized mock flake8
pip install -r requirements.txt

- name: Lint with flake8
run: |
# Statical analysis
flake8 configcatclient --count --show-source --statistics

- name: Run coverage
run: pytest --cov=configcatclient configcatclienttests

- name: Upload coverage report
uses: codecov/codecov-action@v3
name: Python CI

on:
schedule:
- cron: "0 0 * * *"
push:
branches: [master]
paths-ignore:
- "**.md"
pull_request:
branches: [master]

workflow_dispatch:

jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
python-version:
[
"3.5",
"3.6",
"3.7",
"3.8",
"3.9",
"3.10",
"3.11",
"3.12",
"3.13",
"3.14",
]
os: [windows-latest, macos-latest, ubuntu-latest]
exclude: # Python < v3.8 does not support Apple Silicon ARM64.
- python-version: "3.5"
os: macos-latest
- python-version: "3.6"
os: macos-latest
- python-version: "3.7"
os: macos-latest
include: # So run those legacy versions on Intel CPUs.
- python-version: "3.5"
os: macos-13
- python-version: "3.6"
os: macos-13
- python-version: "3.7"
os: macos-13

steps:
- uses: actions/checkout@v5

- name: Run tests in Docker for legacy Python
if: matrix.os == 'ubuntu-latest' && contains(fromJSON('["3.5","3.6","3.7"]'), matrix.python-version)
run: |
docker run --rm -v ${{ github.workspace }}:/app -w /app python:${{ matrix.python-version }} bash -c "
pip install --upgrade pip &&
pip install pytest pytest-cov parameterized mock flake8 &&
pip install -r requirements.txt &&
flake8 configcatclient --count --show-source --statistics &&
pytest configcatclienttests
"

- name: Set up Python ${{ matrix.python-version }}
if: ${{ !(matrix.os == 'ubuntu-latest' && contains(fromJSON('["3.5","3.6","3.7"]'), matrix.python-version)) }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
env:
# Needed on Ubuntu for Python 3.5 build.
PIP_TRUSTED_HOST: "pypi.python.org pypi.org files.pythonhosted.org"

- name: Install dependencies
if: ${{ !(matrix.os == 'ubuntu-latest' && contains(fromJSON('["3.5","3.6","3.7"]'), matrix.python-version)) }}
run: |
python -m pip install --upgrade pip
pip install pytest pytest-cov parameterized mock flake8
pip install -r requirements.txt

- name: Lint with flake8
if: ${{ !(matrix.os == 'ubuntu-latest' && contains(fromJSON('["3.5","3.6","3.7"]'), matrix.python-version)) }}
run: |
# Statical analysis
flake8 configcatclient --count --show-source --statistics

- name: Test
if: ${{ !(matrix.os == 'ubuntu-latest' && contains(fromJSON('["3.5","3.6","3.7"]'), matrix.python-version)) }}
run: pytest configcatclienttests

coverage:
needs: [test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest pytest-cov parameterized mock flake8
pip install -r requirements.txt

- name: Lint with flake8
run: |
# Statical analysis
flake8 configcatclient --count --show-source --statistics

- name: Run coverage
run: pytest --cov=configcatclient configcatclienttests

- name: Upload coverage report
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
2 changes: 2 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ def parse_requirements(filename):
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12',
'Programming Language :: Python :: 3.13',
'Programming Language :: Python :: 3.14',
'Topic :: Software Development',
'Topic :: Software Development :: Libraries',
],
Expand Down
Loading