Skip to content

Branches Development Workflow #1230

Branches Development Workflow

Branches Development Workflow #1230

Workflow file for this run

name: Branches Development Workflow
on:
pull_request:
branches:
- "**"
- "!dev"
- "!master"
push:
branches:
- "**"
- "!dev"
- "!master"
schedule:
- cron: "0 0 * * *"
jobs:
lint:
name: Lint PyFunceble
runs-on: "${{ matrix.os }}"
strategy:
fail-fast: false
matrix:
python_version:
- "3.12"
os:
- ubuntu-latest
steps:
- uses: actions/checkout@v4
name: Clone repository
- name: Set up Python ${{ matrix.python_version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
- name: Install dependencies
run: |
pip install --upgrade pip
pip install -r requirements.txt
pip install pylint
- name: Lint PyFunceble with Pylint
run: pylint PyFunceble
- name: Lint tests with Pylint
run: pylint tests
deps_safety_check:
name: Check the safety of our dependencies.
runs-on: "${{ matrix.os }}"
strategy:
fail-fast: false
matrix:
python_version:
- "3.12"
os:
- ubuntu-latest
steps:
- uses: actions/checkout@v4
name: Clone repository
- name: Set up Python ${{ matrix.python_version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
- name: Install dependencies
run: |
pip install --upgrade pip
pip install -r requirements.txt
pip install safety
- name: Check the safety of our dependencies.
run: safety check -i 51668 -i 62044 -i 67599
test:
needs: [lint, deps_safety_check]
name: "[${{ matrix.os }}-py${{ matrix.python_version }}] Test PyFunceble"
runs-on: "${{ matrix.os }}"
strategy:
fail-fast: false
matrix:
python_version:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
os:
- ubuntu-latest
- macos-latest
- windows-latest
steps:
- uses: actions/checkout@v4
name: Clone repository
- name: Set up Python ${{ matrix.python_version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
- name: Install dependencies
run: |
pip install --upgrade pip
pip install -r requirements.txt
pip install tox coveralls
- name: Test PyFunceble as defined by tox.ini
run: |
tox -c tox.ini
- name: Upload Coverage
continue-on-error: true
run: |
coveralls
env:
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
COVERALLS_PARALLEL: true
coveralls:
needs: test
name: Finish Coveralls
runs-on: "${{ matrix.os }}"
strategy:
fail-fast: false
matrix:
python_version:
- "3.12"
os:
- ubuntu-latest
steps:
- name: Sending finish flag to coveralls.io
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel-finished: true
run_cli:
needs: test
name: "[${{ matrix.os }}-py${{ matrix.python_version }}] Run PyFunceble"
runs-on: "${{ matrix.os }}"
strategy:
fail-fast: false
matrix:
python_version:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
os:
- ubuntu-latest
- macos-latest
- windows-latest
steps:
- uses: actions/checkout@v4
name: Clone repository
- name: Set up Python ${{ matrix.python_version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
- name: Install dependencies
run: |
pip install --upgrade pip
pip install -r requirements.txt
pip install tox
- name: Run PyFunceble as defined by tox_run.ini
run: tox -c tox_run.ini
run_cli_mariadb:
needs: test
name: "[${{ matrix.os }}-py${{ matrix.python_version }}] Run PyFunceble (with mariadb)"
runs-on: "${{ matrix.os }}"
services:
mariadb:
image: ghcr.io/pyfunceble/mariadb/mariadb:latest
ports:
- 3306:3306
env:
MYSQL_USER: pyfunceble
MYSQL_PASSWORD: my_pyfunceble_password
MYSQL_DATABASE: pyfunceble
MYSQL_ROOT_PASSWORD: my_awesome_root_password
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3
env:
PYFUNCEBLE_DB_CHARSET: utf8mb4
PYFUNCEBLE_DB_HOST: "127.0.0.1"
PYFUNCEBLE_DB_NAME: pyfunceble
PYFUNCEBLE_DB_PASSWORD: my_pyfunceble_password
PYFUNCEBLE_DB_PORT: "3306"
PYFUNCEBLE_DB_USERNAME: pyfunceble
strategy:
fail-fast: false
matrix:
python_version:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
os:
- ubuntu-latest
steps:
- uses: actions/checkout@v4
name: Clone repository
- name: Set up Python ${{ matrix.python_version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
- name: Install dependencies
run: |
pip install --upgrade pip
pip install -r requirements.txt
pip install tox
- name: Run PyFunceble as defined by tox_run_mariadb.ini
run: tox -c tox_run_mariadb.ini
run_cli_postgresql:
needs: test
name: "[${{ matrix.os }}-py${{ matrix.python_version }}] Run PyFunceble (with postgresql)"
runs-on: "${{ matrix.os }}"
services:
mariadb:
image: postgres:latest
ports:
- 5432:5432
env:
POSTGRES_USER: pyfunceble
POSTGRES_PASSWORD: my_pyfunceble_password
POSTGRES_DB: pyfunceble
MYSQL_ROOT_PASSWORD: my_awesome_root_password
options: --health-cmd="pg_isready --host=localhost --username=pyfunceble --port=5432" --health-interval=5s --health-timeout=2s --health-retries=3
env:
PYFUNCEBLE_DB_CHARSET: utf8
PYFUNCEBLE_DB_HOST: "127.0.0.1"
PYFUNCEBLE_DB_NAME: pyfunceble
PYFUNCEBLE_DB_PASSWORD: my_pyfunceble_password
PYFUNCEBLE_DB_PORT: "3306"
PYFUNCEBLE_DB_USERNAME: pyfunceble
strategy:
fail-fast: false
matrix:
python_version:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
os:
- ubuntu-latest
steps:
- uses: actions/checkout@v4
name: Clone repository
- name: Set up Python ${{ matrix.python_version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
- name: Install dependencies
run: |
pip install --upgrade pip
pip install -r requirements.txt
pip install tox psycopg2
- name: Run PyFunceble as defined by tox_run_postgresql.ini
run: tox -c tox_run_postgresql.ini