| name: Python package |
| |
| on: [push, pull_request] |
| |
| env: |
| DOCKER_BUILDKIT: '1' |
| FORCE_COLOR: 1 |
| |
| jobs: |
| lint: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v4 |
| - uses: actions/setup-python@v5 |
| with: |
| python-version: '3.x' |
| - run: pip install -U ruff==0.1.8 |
| - name: Run ruff |
| run: ruff docker tests |
| |
| build: |
| runs-on: ubuntu-22.04 |
| steps: |
| - uses: actions/checkout@v4 |
| - uses: actions/setup-python@v5 |
| with: |
| python-version: '3.x' |
| - run: pip3 install build && python -m build . |
| - uses: actions/upload-artifact@v4 |
| with: |
| name: dist |
| path: dist |
| |
| unit-tests: |
| runs-on: ubuntu-latest |
| strategy: |
| matrix: |
| python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] |
| |
| steps: |
| - uses: actions/checkout@v4 |
| - name: Set up Python ${{ matrix.python-version }} |
| uses: actions/setup-python@v5 |
| with: |
| python-version: ${{ matrix.python-version }} |
| allow-prereleases: true |
| - name: Install dependencies |
| run: | |
| python3 -m pip install --upgrade pip |
| pip3 install '.[ssh,dev]' |
| - name: Run unit tests |
| run: | |
| docker logout |
| rm -rf ~/.docker |
| py.test -v --cov=docker tests/unit |
| |
| integration-tests: |
| runs-on: ubuntu-latest |
| strategy: |
| matrix: |
| variant: [ "integration-dind", "integration-dind-ssl", "integration-dind-ssh" ] |
| |
| steps: |
| - uses: actions/checkout@v4 |
| with: |
| fetch-depth: 0 |
| fetch-tags: true |
| - name: make ${{ matrix.variant }} |
| run: | |
| docker logout |
| rm -rf ~/.docker |
| make ${{ matrix.variant }} |