Branches Development Workflow #870
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.11" | |
os: | |
- ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
name: Clone repository | |
- name: Set up Python ${{ matrix.python_version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python_version }} | |
- name: Install dependencies | |
run: | | |
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.11" | |
os: | |
- ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
name: Clone repository | |
- name: Set up Python ${{ matrix.python_version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python_version }} | |
- name: Install dependencies | |
run: | | |
pip install -r requirements.txt | |
pip install safety | |
- name: Check the safety of our dependencies. | |
run: safety check -i 51668 | |
test: | |
needs: [lint, deps_safety_check] | |
name: "[${{ matrix.os }}] Test PyFunceble with Python ${{ matrix.python_version }}" | |
runs-on: "${{ matrix.os }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
python_version: | |
- "3.8" | |
- "3.9" | |
- "3.10" | |
- "3.11" | |
os: | |
- ubuntu-latest | |
- macos-latest | |
- windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
name: Clone repository | |
- name: Set up Python ${{ matrix.python_version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python_version }} | |
- name: Install dependencies | |
run: | | |
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.11" | |
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 }}] Run PyFunceble with Python ${{ matrix.python_version }}" | |
runs-on: "${{ matrix.os }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
python_version: | |
- "3.8" | |
- "3.9" | |
- "3.10" | |
- "3.11" | |
os: | |
- ubuntu-latest | |
- macos-latest | |
- windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
name: Clone repository | |
- name: Set up Python ${{ matrix.python_version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python_version }} | |
- name: Install dependencies | |
run: | | |
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 }}] Run PyFunceble (with mariadb) with Python ${{ matrix.python_version }}" | |
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" | |
os: | |
- ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
name: Clone repository | |
- name: Set up Python ${{ matrix.python_version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python_version }} | |
- name: Install dependencies | |
run: | | |
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 }}] Run PyFunceble (with postgresql) with Python ${{ matrix.python_version }}" | |
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" | |
os: | |
- ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
name: Clone repository | |
- name: Set up Python ${{ matrix.python_version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python_version }} | |
- name: Install dependencies | |
run: | | |
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 |