Skip to content

Commit

Permalink
ci: multi-python docker image for GHA matrix
Browse files Browse the repository at this point in the history
  • Loading branch information
nosahama committed Dec 9, 2024
1 parent 4264981 commit 1bb1475
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 8 deletions.
16 changes: 12 additions & 4 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ '3.9', '3.10', '3.11', '3.12' ]
python-version: [ '3.10', '3.11', '3.12' ]
env:
PYTEST_ADDOPTS: >-
--log-dir=/tmp/ci-logs
Expand All @@ -40,14 +40,20 @@ jobs:
with:
go-version: '1.21.0'

- name: Install requirements
run: make install-dev

- name: Resolve Karapace version
run: echo KARAPACE_VERSION=4.1.1.dev44+gac20eeed.d20241205 >> $GITHUB_ENV
run: |
source ./venv/bin/activate
KARAPACE_VERSION=$(python -c "from karapace import version; print(version.__version__)")
echo KARAPACE_VERSION=$KARAPACE_VERSION >> $GITHUB_ENV
- run: echo "RUNNER_UID=$(id -u)" >> $GITHUB_ENV
- run: echo "RUNNER_GID=$(id -g)" >> $GITHUB_ENV
- run: echo "RUNNER_UID=$(id -u)" >> $GITHUB_ENV; echo "RUNNER_GID=$(id -g)" >> $GITHUB_ENV

- run: make unit-tests-in-docker
env:
PYTHON_VERSION: ${{ matrix.python-version }}
KARAPACE_VERSION: ${{ env.KARAPACE_VERSION }}
RUNNER_UID: ${{ env.RUNNER_UID }}
RUNNER_GID: ${{ env.RUNNER_GID }}
Expand All @@ -56,6 +62,7 @@ jobs:

- run: make e2e-tests-in-docker
env:
PYTHON_VERSION: ${{ matrix.python-version }}
KARAPACE_VERSION: ${{ env.KARAPACE_VERSION }}
RUNNER_UID: ${{ env.RUNNER_UID }}
RUNNER_GID: ${{ env.RUNNER_GID }}
Expand All @@ -64,6 +71,7 @@ jobs:

- run: make integration-tests-in-docker
env:
PYTHON_VERSION: ${{ matrix.python-version }}
KARAPACE_VERSION: ${{ env.KARAPACE_VERSION }}
RUNNER_UID: ${{ env.RUNNER_UID }}
RUNNER_GID: ${{ env.RUNNER_GID }}
Expand Down
16 changes: 13 additions & 3 deletions GNUmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,10 @@ schema:
pin-requirements:
docker run -e CUSTOM_COMPILE_COMMAND='make pin-requirements' -it -v .:/karapace --security-opt label=disable python:$(PYTHON_VERSION)-bullseye /bin/bash -c "$(PIN_VERSIONS_COMMAND)"

.PHONY: stop-karapace-docker-resources
stop-karapace-docker-resources:
$(DOCKER_COMPOSE) -f container/compose.yml down -v --remove-orphans

.PHONY: start-karapace-docker-resources
start-karapace-docker-resources: export KARAPACE_VERSION ?= 4.1.1.dev44+gac20eeed.d20241205
start-karapace-docker-resources:
Expand All @@ -121,20 +125,26 @@ unit-tests-in-docker: start-karapace-docker-resources

.PHONY: e2e-tests-in-docker
e2e-tests-in-docker: export PYTEST_ARGS ?=
e2e-tests-in-docker: start-karapace-docker-resources
e2e-tests-in-docker: stop-karapace-docker-resources start-karapace-docker-resources
rm -fr runtime/*
sleep 10
$(KARAPACE-CLI) $(PYTHON) -m pytest -s -vvv $(PYTEST_ARGS) tests/e2e/test_karapace.py
$(KARAPACE-CLI) $(PYTHON) -m pytest -s -vvv $(PYTEST_ARGS) tests/e2e/
rm -fr runtime/*

.PHONY: integration-tests-in-docker
integration-tests-in-docker: export PYTEST_ARGS ?=
integration-tests-in-docker: start-karapace-docker-resources
integration-tests-in-docker: stop-karapace-docker-resources start-karapace-docker-resources
rm -fr runtime/*
sleep 10
$(KARAPACE-CLI) $(PYTHON) -m pytest -s -vvv $(PYTEST_ARGS) tests/integration/
rm -fr runtime/*

karapace-version: install
$(PYTHON) -c "from karapace import version; print(version.__version__)"

karapace-version-in-docker: start-karapace-docker-resources
$(KARAPACE-CLI) $(PYTHON) -c "from karapace import version; print(version.__version__)"

.PHONY: type-check-mypy-in-docker
type-check-mypy-in-docker: start-karapace-docker-resources
$(KARAPACE-CLI) $(PYTHON) -m mypy src
Expand Down
4 changes: 3 additions & 1 deletion container/Dockerfile.dev
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
ARG PYTHON_VERSION

# Current versions of avro and zstandard don't yet have wheels for 3.11.
FROM python:3.10.11-bullseye AS builder
FROM python:${PYTHON_VERSION}-bullseye AS builder

ARG KARAPACE_VERSION
ARG RUNNER_UID
Expand Down
1 change: 1 addition & 0 deletions container/compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ services:
dockerfile: container/Dockerfile.dev
args:
KARAPACE_VERSION: $KARAPACE_VERSION
PYTHON_VERSION: $PYTHON_VERSION
RUNNER_UID: $RUNNER_UID
RUNNER_GID: $RUNNER_GID
tty: true
Expand Down

0 comments on commit 1bb1475

Please sign in to comment.