391 lines
15 KiB
YAML
391 lines
15 KiB
YAML
|
# Workflow for python
|
||
|
name: Python
|
||
|
|
||
|
# Relevant to events - https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows
|
||
|
on:
|
||
|
pull_request:
|
||
|
types: [synchronize, opened, reopened, ready_for_review]
|
||
|
paths:
|
||
|
- '**.py'
|
||
|
- 'requirements.txt'
|
||
|
|
||
|
jobs:
|
||
|
# Linting 3.5
|
||
|
lint-linux-python-3_5:
|
||
|
runs-on: ubuntu-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
- name: Configuring backend..
|
||
|
uses: actions/setup-python@v1
|
||
|
with:
|
||
|
python-version: 3.5
|
||
|
- name: Install dependencies
|
||
|
run: |
|
||
|
python -m pip install --upgrade pip
|
||
|
pip install -r requirements.txt
|
||
|
- name: Lint with flake8
|
||
|
run: |
|
||
|
pip install flake8
|
||
|
# stop the build if there are Python syntax errors or undefined names
|
||
|
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
||
|
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
||
|
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
||
|
- name: Test with pytest
|
||
|
run: |
|
||
|
pip install pytest
|
||
|
# FIXME: False triggers on files which names continues after set extension
|
||
|
cd "$GITHUB_WORKSPACE" && for file in $(git ls-tree --name-only -r ${{ github.sha }} | grep '\.py$'); do pytest "$file"; done
|
||
|
lint-macos-python-3_5:
|
||
|
runs-on: macos-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
- name: Configuring backend..
|
||
|
uses: actions/setup-python@v1
|
||
|
with:
|
||
|
python-version: 3.5
|
||
|
- name: Install dependencies
|
||
|
run: |
|
||
|
python -m pip install --upgrade pip
|
||
|
pip install -r requirements.txt
|
||
|
- name: Lint with flake8
|
||
|
run: |
|
||
|
pip install flake8
|
||
|
# stop the build if there are Python syntax errors or undefined names
|
||
|
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
||
|
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
||
|
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
||
|
- name: Test with pytest
|
||
|
run: |
|
||
|
pip install pytest
|
||
|
# FIXME: False triggers on files which names continues after set extension
|
||
|
cd "$GITHUB_WORKSPACE" && for file in $(git ls-tree --name-only -r ${{ github.sha }} | grep '\.py$'); do pytest "$file"; done
|
||
|
lint-windows-python-3_5:
|
||
|
runs-on: windows-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
- name: Configuring backend..
|
||
|
uses: actions/setup-python@v1
|
||
|
with:
|
||
|
python-version: 3.5
|
||
|
- name: Install dependencies
|
||
|
run: |
|
||
|
python -m pip install --upgrade pip
|
||
|
pip install -r requirements.txt
|
||
|
- name: Lint with flake8
|
||
|
run: |
|
||
|
pip install flake8
|
||
|
# stop the build if there are Python syntax errors or undefined names
|
||
|
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
||
|
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
||
|
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
||
|
- name: Test with pytest
|
||
|
run: |
|
||
|
pip install pytest
|
||
|
# FIXME: False triggers on files which names continues after set extension
|
||
|
cd "$GITHUB_WORKSPACE" && for file in $(git ls-tree --name-only -r ${{ github.sha }} | grep '\.py$'); do pytest "$file"; done
|
||
|
security-check-python-3_5:
|
||
|
runs-on: ubuntu-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
- name: Configuring backend..
|
||
|
uses: actions/setup-python@v1
|
||
|
with:
|
||
|
python-version: 3.5
|
||
|
- name: Installing python dependencies
|
||
|
run: |
|
||
|
python -m pip install --upgrade pip
|
||
|
pip install -r requirements.txt
|
||
|
- name: Installing linting dependencies
|
||
|
run: |
|
||
|
if apt list --installed | grep -qP "^bandit -"; then sudo apt install -y bandit; fi
|
||
|
- name: Linting..
|
||
|
run: |
|
||
|
cd "$GITHUB_WORKSPACE" && for file in $(git ls-tree --name-only -r ${{ github.sha }} | grep '\.py$'); do
|
||
|
printf 'checking python file %s for security issues\n' "$file"
|
||
|
bandit "$file"
|
||
|
done
|
||
|
|
||
|
# Linting 3.6
|
||
|
lint-linux-python-3_6:
|
||
|
runs-on: ubuntu-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
- name: Configuring backend..
|
||
|
uses: actions/setup-python@v1
|
||
|
with:
|
||
|
python-version: 3.6
|
||
|
- name: Install dependencies
|
||
|
run: |
|
||
|
python -m pip install --upgrade pip
|
||
|
pip install -r requirements.txt
|
||
|
- name: Lint with flake8
|
||
|
run: |
|
||
|
pip install flake8
|
||
|
# stop the build if there are Python syntax errors or undefined names
|
||
|
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
||
|
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
||
|
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
||
|
- name: Test with pytest
|
||
|
run: |
|
||
|
pip install pytest
|
||
|
# FIXME: False triggers on files which names continues after set extension
|
||
|
cd "$GITHUB_WORKSPACE" && for file in $(git ls-tree --name-only -r ${{ github.sha }} | grep '\.py$'); do pytest "$file"; done
|
||
|
lint-macos-python-3_6:
|
||
|
runs-on: macos-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
- name: Configuring backend..
|
||
|
uses: actions/setup-python@v1
|
||
|
with:
|
||
|
python-version: 3.6
|
||
|
- name: Install dependencies
|
||
|
run: |
|
||
|
python -m pip install --upgrade pip
|
||
|
pip install -r requirements.txt
|
||
|
- name: Lint with flake8
|
||
|
run: |
|
||
|
pip install flake8
|
||
|
# stop the build if there are Python syntax errors or undefined names
|
||
|
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
||
|
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
||
|
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
||
|
- name: Test with pytest
|
||
|
run: |
|
||
|
pip install pytest
|
||
|
# FIXME: False triggers on files which names continues after set extension
|
||
|
cd "$GITHUB_WORKSPACE" && for file in $(git ls-tree --name-only -r ${{ github.sha }} | grep '\.py$'); do pytest "$file"; done
|
||
|
lint-window-python-3_6:
|
||
|
runs-on: windows-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
- name: Configuring backend..
|
||
|
uses: actions/setup-python@v1
|
||
|
with:
|
||
|
python-version: 3.6
|
||
|
- name: Install dependencies
|
||
|
run: |
|
||
|
python -m pip install --upgrade pip
|
||
|
pip install -r requirements.txt
|
||
|
- name: Lint with flake8
|
||
|
run: |
|
||
|
pip install flake8
|
||
|
# stop the build if there are Python syntax errors or undefined names
|
||
|
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
||
|
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
||
|
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
||
|
- name: Test with pytest
|
||
|
run: |
|
||
|
pip install pytest
|
||
|
# FIXME: False triggers on files which names continues after set extension
|
||
|
cd "$GITHUB_WORKSPACE" && for file in $(git ls-tree --name-only -r ${{ github.sha }} | grep '\.py$'); do pytest "$file"; done
|
||
|
security-check-python-3_6:
|
||
|
runs-on: ubuntu-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
- name: Configuring backend..
|
||
|
uses: actions/setup-python@v1
|
||
|
with:
|
||
|
python-version: 3.6
|
||
|
- name: Installing python dependencies
|
||
|
run: |
|
||
|
python -m pip install --upgrade pip
|
||
|
pip install -r requirements.txt
|
||
|
- name: Installing linting dependencies
|
||
|
run: |
|
||
|
if apt list --installed | grep -qP "^bandit -"; then sudo apt install -y bandit; fi
|
||
|
- name: Linting..
|
||
|
run: |
|
||
|
cd "$GITHUB_WORKSPACE" && for file in $(git ls-tree --name-only -r ${{ github.sha }} | grep '\.py$'); do
|
||
|
printf 'checking python file %s for security issues\n' "$file"
|
||
|
bandit "$file"
|
||
|
done
|
||
|
|
||
|
# Linting 3.7
|
||
|
lint-linux-python-3_7:
|
||
|
runs-on: ubuntu-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
- name: Configuring backend..
|
||
|
uses: actions/setup-python@v1
|
||
|
with:
|
||
|
python-version: 3.7
|
||
|
- name: Install dependencies
|
||
|
run: |
|
||
|
python -m pip install --upgrade pip
|
||
|
pip install -r requirements.txt
|
||
|
- name: Lint with flake8
|
||
|
run: |
|
||
|
pip install flake8
|
||
|
# stop the build if there are Python syntax errors or undefined names
|
||
|
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
||
|
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
||
|
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
||
|
- name: Test with pytest
|
||
|
run: |
|
||
|
pip install pytest
|
||
|
# FIXME: False triggers on files which names continues after set extension
|
||
|
cd "$GITHUB_WORKSPACE" && for file in $(git ls-tree --name-only -r ${{ github.sha }} | grep '\.py$'); do pytest "$file"; done
|
||
|
lint-macos-python-3_7:
|
||
|
runs-on: macos-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
- name: Configuring backend..
|
||
|
uses: actions/setup-python@v1
|
||
|
with:
|
||
|
python-version: 3.7
|
||
|
- name: Install dependencies
|
||
|
run: |
|
||
|
python -m pip install --upgrade pip
|
||
|
pip install -r requirements.txt
|
||
|
- name: Lint with flake8
|
||
|
run: |
|
||
|
pip install flake8
|
||
|
# stop the build if there are Python syntax errors or undefined names
|
||
|
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
||
|
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
||
|
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
||
|
- name: Test with pytest
|
||
|
run: |
|
||
|
pip install pytest
|
||
|
# FIXME: False triggers on files which names continues after set extension
|
||
|
cd "$GITHUB_WORKSPACE" && for file in $(git ls-tree --name-only -r ${{ github.sha }} | grep '\.py$'); do pytest "$file"; done
|
||
|
lint-windows-python-3_7:
|
||
|
runs-on: windows-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
- name: Configuring backend..
|
||
|
uses: actions/setup-python@v1
|
||
|
with:
|
||
|
python-version: 3.7
|
||
|
- name: Install dependencies
|
||
|
run: |
|
||
|
python -m pip install --upgrade pip
|
||
|
pip install -r requirements.txt
|
||
|
- name: Lint with flake8
|
||
|
run: |
|
||
|
pip install flake8
|
||
|
# stop the build if there are Python syntax errors or undefined names
|
||
|
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
||
|
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
||
|
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
||
|
- name: Test with pytest
|
||
|
run: |
|
||
|
pip install pytest
|
||
|
# FIXME: False triggers on files which names continues after set extension
|
||
|
cd "$GITHUB_WORKSPACE" && for file in $(git ls-tree --name-only -r ${{ github.sha }} | grep '\.py$'); do pytest "$file"; done
|
||
|
security-check-python-3_7:
|
||
|
runs-on: ubuntu-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
- name: Configuring backend..
|
||
|
uses: actions/setup-python@v1
|
||
|
with:
|
||
|
python-version: 3.7
|
||
|
- name: Installing python dependencies
|
||
|
run: |
|
||
|
python -m pip install --upgrade pip
|
||
|
pip install -r requirements.txt
|
||
|
- name: Installing linting dependencies
|
||
|
run: |
|
||
|
if apt list --installed | grep -qP "^bandit -"; then sudo apt install -y bandit; fi
|
||
|
- name: Linting..
|
||
|
run: |
|
||
|
cd "$GITHUB_WORKSPACE" && for file in $(git ls-tree --name-only -r ${{ github.sha }} | grep '\.py$'); do
|
||
|
printf 'checking python file %s for security issues\n' "$file"
|
||
|
bandit "$file"
|
||
|
done
|
||
|
|
||
|
# Linting 3.8
|
||
|
lint-linux-python-3_8:
|
||
|
runs-on: ubuntu-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
- name: Configuring backend..
|
||
|
uses: actions/setup-python@v1
|
||
|
with:
|
||
|
python-version: 3.8
|
||
|
- name: Install dependencies
|
||
|
run: |
|
||
|
python -m pip install --upgrade pip
|
||
|
pip install -r requirements.txt
|
||
|
- name: Lint with flake8
|
||
|
run: |
|
||
|
pip install flake8
|
||
|
# stop the build if there are Python syntax errors or undefined names
|
||
|
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
||
|
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
||
|
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
||
|
- name: Test with pytest
|
||
|
run: |
|
||
|
pip install pytest
|
||
|
# FIXME: False triggers on files which names continues after set extension
|
||
|
cd "$GITHUB_WORKSPACE" && for file in $(git ls-tree --name-only -r ${{ github.sha }} | grep '\.py$'); do pytest "$file"; done
|
||
|
lint-macos-python-3_8:
|
||
|
runs-on: macos-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
- name: Configuring backend..
|
||
|
uses: actions/setup-python@v1
|
||
|
with:
|
||
|
python-version: 3.8
|
||
|
- name: Install dependencies
|
||
|
run: |
|
||
|
python -m pip install --upgrade pip
|
||
|
pip install -r requirements.txt
|
||
|
- name: Lint with flake8
|
||
|
run: |
|
||
|
pip install flake8
|
||
|
# stop the build if there are Python syntax errors or undefined names
|
||
|
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
||
|
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
||
|
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
||
|
- name: Test with pytest
|
||
|
run: |
|
||
|
pip install pytest
|
||
|
# FIXME: False triggers on files which names continues after set extension
|
||
|
cd "$GITHUB_WORKSPACE" && for file in $(git ls-tree --name-only -r ${{ github.sha }} | grep '\.py$'); do pytest "$file"; done
|
||
|
lint-windows-python-3_8:
|
||
|
runs-on: windows-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
- name: Configuring backend..
|
||
|
uses: actions/setup-python@v1
|
||
|
with:
|
||
|
python-version: 3.8
|
||
|
- name: Install dependencies
|
||
|
run: |
|
||
|
python -m pip install --upgrade pip
|
||
|
pip install -r requirements.txt
|
||
|
- name: Lint with flake8
|
||
|
run: |
|
||
|
pip install flake8
|
||
|
# stop the build if there are Python syntax errors or undefined names
|
||
|
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
||
|
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
||
|
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
||
|
- name: Test with pytest
|
||
|
run: |
|
||
|
pip install pytest
|
||
|
# FIXME: False triggers on files which names continues after set extension
|
||
|
cd "$GITHUB_WORKSPACE" && for file in $(git ls-tree --name-only -r ${{ github.sha }} | grep '\.py$'); do pytest "$file"; done
|
||
|
security-check-python-3_8:
|
||
|
runs-on: ubuntu-latest
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
- name: Configuring backend..
|
||
|
uses: actions/setup-python@v1
|
||
|
with:
|
||
|
python-version: 3.8
|
||
|
- name: Installing python dependencies
|
||
|
run: |
|
||
|
python -m pip install --upgrade pip
|
||
|
pip install -r requirements.txt
|
||
|
- name: Installing linting dependencies
|
||
|
run: |
|
||
|
if apt list --installed | grep -qP "^bandit -"; then sudo apt install -y bandit; fi
|
||
|
- name: Linting..
|
||
|
run: |
|
||
|
cd "$GITHUB_WORKSPACE" && for file in $(git ls-tree --name-only -r ${{ github.sha }} | grep '\.py$'); do
|
||
|
printf 'checking python file %s for security issues\n' "$file"
|
||
|
bandit "$file"
|
||
|
done
|