Test multiple api versions #813
Workflow file for this run
This file contains 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, pull_request] | ||
env: | ||
DOCKER_BUILDKIT: '1' | ||
FORCE_COLOR: 1 | ||
jobs: | ||
lint: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.x' | ||
- run: pip install -U ruff==0.1.8 | ||
- name: Run ruff | ||
run: ruff docker tests | ||
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@v4 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
allow-prereleases: true | ||
- name: Install dependencies | ||
run: | | ||
python3 -m pip install --upgrade pip | ||
pip3 install -r test-requirements.txt -r requirements.txt | ||
- 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" ] | ||
api-version: [1.44, 1.43, 1.42, 1.24] # 1.24 is the oldest supported version | ||
engine-version: 25.0 # latest | ||
include: # ugly repetition because GHA doesn't support lists in these objects so we need a separate entry for each variant | ||
- engine-version: 23.0 # mirantis lts | ||
api-version: 1.42 | ||
variant: "integration-dind" | ||
- engine-version: 23.0 # mirantis lts | ||
api-version: 1.42 | ||
variant: "integration-dind-ssl" | ||
- engine-version: 23.0 # mirantis lts | ||
api-version: 1.42 | ||
variant: "integration-dind-ssh" | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: ${{ matrix.variant }} - v${{ matrix.engine-version }}/v${{ matrix.api-version }} | ||
run: | | ||
docker logout | ||
rm -rf ~/.docker | ||
make ${{ matrix.variant }} | ||
env: | ||
TEST_ENGINE_VERSION: ${{ matrix.engine-version }} | ||
TEST_API_VERSION: ${{ matrix.api-version }} |