Skip to content

Main Workflow

Main Workflow #365

Workflow file for this run

name: Main Workflow
on:
push:
schedule:
- cron: "0 0 * * 0"
jobs:
build:
name: Build
timeout-minutes: 10
strategy:
matrix:
python-version: [
2.7,
3.5,
3.6,
3.7,
3.8,
3.9,
"3.10",
"3.11",
"3.12",
latest,
rc
]
adapter: ["tiny", "mongo"]
exclude:
- python-version: 2.7
adapter: mongo
- python-version: 3.5
adapter: mongo
env:
MONGO_URL: mongodb://host.docker.internal
runs-on: ubuntu-latest
container:
image: python:${{ matrix.python-version }}
options: >-
--add-host=host.docker.internal:host-gateway
--volume /var/run/docker.sock:/var/run/docker.sock
steps:
- uses: actions/checkout@v4
- run: |
apt-get update
apt-get install -y docker.io
command -v docker
docker version
docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }}
docker run -d --name mongo -p 27017:27017 mongo:7
if: matrix.adapter == 'mongo'
- run: python --version
- run: |
pip install -r requirements.txt
pip install -r extra.txt
if: matrix.python-version != '2.7'
- run: |
pip install -r requirements.py2.txt
pip install -r extra.py2.txt
if: matrix.python-version == '2.7'
- run: |
pip install black
black . --check
if: matrix.python-version == '3.12'
- run: |
pip install pytest
ADAPTER=${{ matrix.adapter }} HTTPBIN=httpbin.bemisc.com pytest
- run: ADAPTER=${{ matrix.adapter }} HTTPBIN=httpbin.bemisc.com python setup.py test
if: ${{ !contains(fromJson('["3.9", "3.10", "3.11", "3.12", "latest"]'), matrix.python-version) }}
build-windows:
name: Build Windows
timeout-minutes: 10
strategy:
matrix:
python-version: [
"3.5",
"3.6",
"3.7",
"3.8",
"3.9",
"3.10",
"3.11",
"3.12"
]
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- run: python --version
- run: |
pip install -r requirements.txt
pip install -r extra.txt
- run: |
pip install black
black . --check
if: matrix.python-version == '3.12'
- run: |
pip install pytest
pytest
env:
ADAPTER: tiny
HTTPBIN: httpbin.bemisc.com
build-macos:
name: Build macOS
timeout-minutes: 10
strategy:
matrix:
python-version: [
"3.9",
"3.10",
"3.11",
"3.12"
]
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- run: python --version
- run: |
pip install -r requirements.txt
pip install -r extra.txt
- run: |
pip install black
black . --check
if: matrix.python-version == '3.12'
- run: |
pip install pytest
ADAPTER=tiny HTTPBIN=httpbin.bemisc.com pytest