Allow specifying missing_host_key_policy. #319
This file contains hidden or 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: Python package | |
| on: | |
| push: | |
| branches-ignore: | |
| - 'dependabot/**' | |
| tags-ignore: | |
| - '*.[0-9][ab][0-9]' | |
| pull_request: {} | |
| jobs: | |
| PEP8: | |
| name: Check with Ruff | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.x' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install --upgrade ruff | |
| - name: Lint with ruff | |
| run: | | |
| ruff check . --output-format github | |
| PyLint: | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.11' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install --upgrade -r CI_REQUIREMENTS.txt | |
| pip install --upgrade "pylint >= 3.0.0" | |
| - name: Install develop | |
| run: | | |
| pip install -e . | |
| - name: Lint with PyLint | |
| run: | | |
| pylint exec_helpers | |
| MyPy: | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.x' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install --upgrade -r CI_REQUIREMENTS.txt | |
| pip install --upgrade -r mypy_requirements.txt | |
| - name: Install develop | |
| run: | | |
| pip install -e . | |
| - name: Lint with MyPy | |
| run: | | |
| mypy --strict --install-types --non-interactive exec_helpers | |
| Test: | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| needs: [PEP8, PyLint, MyPy] # isort is broken | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| max-parallel: 6 | |
| matrix: | |
| os: [ubuntu-latest, windows-latest] | |
| python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] | |
| name: "Script based python ${{ matrix.python-version }} on ${{ matrix.os }}" | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip wheel | |
| pip install --upgrade -r CI_REQUIREMENTS.txt | |
| pip install --upgrade -r pytest_requirements.txt | |
| - name: Install develop | |
| run: | | |
| pip install -e . | |
| - name: Test with pytest | |
| run: | | |
| py.test --cov-report= --cov=exec_helpers test | |
| coverage report -m | |
| coverage xml | |
| # coverage report -m --fail-under 85 | |
| - name: Coveralls Parallel | |
| uses: coverallsapp/github-action@v2 | |
| with: | |
| flag-name: run-${{ matrix.python-version }}-${{ matrix.os }} | |
| parallel: true | |
| file: coverage.xml | |
| UploadCoverage: | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| name: Upload coverage to Coveralls | |
| needs: [ Test ] | |
| if: ${{ always() }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Coveralls Finished | |
| uses: coverallsapp/github-action@v2 | |
| with: | |
| parallel-finished: true | |
| Build: | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| needs: [ Test ] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 # need for setuptools_scm | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.x' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install --upgrade twine build | |
| - name: Build package | |
| run: | | |
| python -m build | |
| - uses: actions/upload-artifact@v6 | |
| with: | |
| path: dist/* | |
| name: built-sdist | |
| Metadata: | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| name: Validate metadata | |
| runs-on: ubuntu-latest | |
| needs: [ Build ] | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.x' | |
| cache: 'pip' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install --upgrade twine | |
| - uses: actions/download-artifact@v7.0.0 | |
| with: | |
| pattern: built-* | |
| merge-multiple: true | |
| path: dist | |
| - name: Validate metadata | |
| run: | | |
| twine check dist/* | |
| Deploy: | |
| needs: [Build, Metadata] | |
| if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: pypi | |
| url: https://pypi.org/p/exec-helpers | |
| permissions: | |
| id-token: write # IMPORTANT: this permission is mandatory for trusted publishing | |
| contents: read | |
| steps: | |
| - uses: actions/download-artifact@v7.0.0 | |
| with: | |
| pattern: built-* | |
| merge-multiple: true | |
| path: dist | |
| - name: Publish package distributions to PyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 |