name: staging-checks on: push: branches: [development] pull_request: branches: [development, staging] jobs: check-if-py-files-exist: runs-on: ubuntu-latest outputs: py_files_exist: ${{ steps.check.outputs.py_files_exist }} steps: - uses: actions/checkout@v2 - id: check_files run: | if [ -n "$(find . -name '*.py')" ]; then echo "::set-output name=py_files_exist::true" else echo "::set-output name=py_files_exist::false" fi python-quality-checks: needs: check-if-py-files-exist if: ${{ needs.check-if-py-files-exist.outputs.py_files_exist == 'true' }} runs-on: ubuntu-latest steps: - uses : actions/checkout@v2 - name : Setup uses : actions/setup-python@v2 with: python-version: 3.11 - name : Dependencies run: | python -m pip install --upgrade pip pip install flake8 pylint black bandit safety - name : Linting run: | flake8 . find . -name "*.py" | xargs pylint - name : Formatting run: | black --check . - name: Security run: | bandit -r . safety check