mirror of
https://github.com/ansible-collections/community.mysql.git
synced 2025-08-21 13:31:45 -07:00
Refactor build container using a matrix
This commit is contained in:
parent
50e7413b88
commit
77f707c564
31 changed files with 180 additions and 594 deletions
185
.github/workflows/build-docker-image.yml
vendored
185
.github/workflows/build-docker-image.yml
vendored
|
@ -23,16 +23,159 @@ jobs:
|
|||
contents: read
|
||||
packages: write
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- from: ubuntu2004
|
||||
db_client: mariadb
|
||||
python_minor: '8'
|
||||
connector_name: pymysql
|
||||
connector_major: '0'
|
||||
connector_minor: '9'
|
||||
connector_release: '3'
|
||||
|
||||
- from: ubuntu2004
|
||||
db_client: mariadb
|
||||
python_minor: '8'
|
||||
connector_name: mysqlclient
|
||||
connector_major: '2'
|
||||
connector_minor: '0'
|
||||
connector_release: '1'
|
||||
|
||||
- from: ubuntu2204
|
||||
db_client: mariadb
|
||||
python_minor: '9' # RHEL9 uses 3.9 by default
|
||||
connector_name: pymysql
|
||||
# Same ver. as RHEL package python3-PyMySQL
|
||||
connector_major: '0'
|
||||
connector_minor: '10'
|
||||
connector_release: '1'
|
||||
|
||||
- from: ubuntu2004
|
||||
db_client: mariadb
|
||||
python_minor: '9'
|
||||
connector_name: mysqlclient
|
||||
connector_major: '2'
|
||||
connector_minor: '0'
|
||||
connector_release: '3'
|
||||
|
||||
- from: ubuntu2204
|
||||
db_client: mariadb
|
||||
python_minor: '10'
|
||||
connector_name: pymysql
|
||||
connector_major: '1'
|
||||
connector_minor: '0'
|
||||
connector_release: '2'
|
||||
|
||||
- from: ubuntu2204
|
||||
db_client: mariadb
|
||||
python_minor: '10'
|
||||
connector_name: mysqlclient
|
||||
connector_major: '2'
|
||||
connector_minor: '1'
|
||||
connector_release: '1'
|
||||
|
||||
- from: ubuntu2204
|
||||
db_client: mariadb
|
||||
python_minor: '11' # RHEL9 uses 3.9 by default
|
||||
connector_name: pymysql
|
||||
# Same ver. as RHEL package python3.11-PyMySQL
|
||||
connector_major: '1'
|
||||
connector_minor: '0'
|
||||
connector_release: '2'
|
||||
|
||||
- from: ubuntu2204
|
||||
db_client: mariadb
|
||||
python_minor: '12' # RHEL9 uses 3.9 by default
|
||||
connector_name: pymysql
|
||||
# Same ver. as RHEL package python3.12-PyMySQL
|
||||
connector_major: '1'
|
||||
connector_minor: '1'
|
||||
connector_release: '0'
|
||||
|
||||
- from: ubuntu2004
|
||||
db_client: mysql
|
||||
python_minor: '8'
|
||||
connector_name: pymysql
|
||||
connector_major: '0'
|
||||
connector_minor: '9'
|
||||
connector_release: '3'
|
||||
|
||||
- from: ubuntu2004
|
||||
db_client: mysql
|
||||
python_minor: '8'
|
||||
connector_name: mysqlclient
|
||||
connector_major: '2'
|
||||
connector_minor: '0'
|
||||
connector_release: '1'
|
||||
|
||||
- from: ubuntu2004
|
||||
db_client: mysql
|
||||
python_minor: '9'
|
||||
connector_name: pymysql
|
||||
connector_major: '0'
|
||||
connector_minor: '10'
|
||||
connector_release: '1'
|
||||
|
||||
- from: ubuntu2004
|
||||
db_client: mysql
|
||||
python_minor: '9'
|
||||
connector_name: mysqlclient
|
||||
connector_major: '2'
|
||||
connector_minor: '0'
|
||||
connector_release: '3'
|
||||
|
||||
- from: ubuntu2204
|
||||
db_client: mysql
|
||||
python_minor: '10'
|
||||
connector_name: pymysql
|
||||
connector_major: '1'
|
||||
connector_minor: '0'
|
||||
connector_release: '2'
|
||||
|
||||
- from: ubuntu2204
|
||||
db_client: mysql
|
||||
python_minor: '10'
|
||||
connector_name: mysqlclient
|
||||
connector_major: '2'
|
||||
connector_minor: '1'
|
||||
connector_release: '1'
|
||||
|
||||
- from: ubuntu2204
|
||||
db_client: mysql
|
||||
python_minor: '11' # RHEL9 uses 3.9 by default
|
||||
connector_name: pymysql
|
||||
# Same ver. as RHEL package python3.11-PyMySQL
|
||||
connector_major: '1'
|
||||
connector_minor: '0'
|
||||
connector_release: '2'
|
||||
|
||||
- from: ubuntu2204
|
||||
db_client: mysql
|
||||
python_minor: '12' # RHEL9 uses 3.9 by default
|
||||
connector_name: pymysql
|
||||
# Same ver. as RHEL package python3.12-PyMySQL
|
||||
connector_major: '1'
|
||||
connector_minor: '1'
|
||||
connector_release: '0'
|
||||
|
||||
env:
|
||||
connector_version:
|
||||
"${{ matrix.connector_major }}.\
|
||||
${{ matrix.connector_minor }}.\
|
||||
${{ matrix.connector_release }}"
|
||||
|
||||
steps:
|
||||
# Requirement to use 'context' in docker/build-push-action@v3
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# https://github.com/docker/login-action
|
||||
- name: Log into registry ${{ inputs.registry }}
|
||||
- name: Log into registry ghcr.io
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{ inputs.registry }}
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
|
@ -42,9 +185,12 @@ jobs:
|
|||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images:
|
||||
"${{ inputs.registry }}\
|
||||
" ghcr.io\
|
||||
/${{ github.repository }}\
|
||||
/${{ inputs.image_name }}"
|
||||
/test-container-${{ matrix.db_client }}-\
|
||||
py3${{ matrix.python_minor }}-\
|
||||
${{ matrix.connector_name }}${{ matrix.connector_major }}\
|
||||
${{ matrix.connector_minor }}${{ matrix.connector_release }}"
|
||||
tags: latest
|
||||
|
||||
# Setting up Docker Buildx with docker-container driver is required
|
||||
|
@ -59,7 +205,36 @@ jobs:
|
|||
id: build-and-push
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
context: ${{ inputs.context }}
|
||||
context: |
|
||||
FROM quay.io/ansible/${{ matrix.from }}-test-container:main
|
||||
|
||||
RUN apt-get update -y && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get upgrade -y \
|
||||
--no-install-recommends && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||
--no-install-recommends \
|
||||
python3${{ matrix.python_minor }} \
|
||||
python3${{ matrix.python_minor }}-dev \
|
||||
iproute2 \
|
||||
build-essential \
|
||||
|
||||
if [[ "${{ matrix.db_client }}" == "mysql" ]]; then
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||
--no-install-recommends default-libmysqlclient-dev \
|
||||
mysql-client
|
||||
else
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||
--no-install-recommends mariadb-client
|
||||
fi
|
||||
|
||||
RUN python3${{ matrix.python_minor }} -m pip install \
|
||||
--disable-pip-version-check \
|
||||
--no-cache-dir \
|
||||
cffi \
|
||||
${{ matrix.connector_name }}==$connector_version
|
||||
|
||||
ENV container=docker
|
||||
CMD ["/sbin/init"]
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue