# 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