Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
7fcfdc2
Add GitHub Actions CI using ProxySQL/dbdeployer
renecannao Apr 8, 2026
bb2202a
Fix dbdeployer install: move binary to /usr/local/bin
renecannao Apr 8, 2026
14433f3
Add MySQL 9.0.1, 9.2.0, 9.6.0 to CI matrix and fix Percona check
renecannao Apr 8, 2026
3faff53
Add MariaDB 12.1.2 to CI matrix
renecannao Apr 8, 2026
80546dd
Fix version-specific compatibility issues in CI MySQL
renecannao Apr 8, 2026
8ff52a6
Add PostgreSQL support
renecannao Apr 8, 2026
df3f199
Skip SHA integrity test on MySQL 9.6+ (sha() removed)
renecannao Apr 8, 2026
b4cb648
Fix SQL syntax error in PostgreSQL integrity tests
renecannao Apr 8, 2026
d1f3534
Fix dbdeployer install: move binary to /usr/local/bin
renecannao Apr 8, 2026
0acb243
Add MySQL 9.0.1, 9.2.0, 9.6.0 to CI matrix and fix Percona check
renecannao Apr 8, 2026
3572cb4
Add MariaDB 12.1.2 to CI matrix
renecannao Apr 8, 2026
4241f89
Fix version-specific compatibility issues in CI MySQL
renecannao Apr 8, 2026
5dd0fc8
Skip SHA integrity test on MySQL 9.6+ (sha() removed)
renecannao Apr 8, 2026
bf33f26
Fix psql flags in PostgreSQL CI: use -t instead of -BN
renecannao Apr 8, 2026
c22965d
Fix GROUP BY in show_departments() for PostgreSQL strictness
renecannao Apr 8, 2026
ccd21a6
Convert show_departments() from procedure to function returning TABLE
renecannao Apr 8, 2026
cf7d765
Qualify column references in show_departments() to avoid ambiguity
renecannao Apr 8, 2026
af1e75c
Add SHA2 integrity test using SHA-256 (works on MySQL 9.6+)
renecannao Apr 8, 2026
f7d7383
Hardcode SHA-256 expected values and add PostgreSQL SHA2 test
renecannao Apr 8, 2026
634a57f
Add SHA2 integrity test using SHA-256 (works on MySQL 9.6+)
renecannao Apr 8, 2026
67986cc
Update README with supported versions and MySQL 9.x compatibility notes
renecannao Apr 8, 2026
1baf225
Update README with supported versions, MySQL 9.x notes, and PostgreSQ…
renecannao Apr 8, 2026
1b50757
Add MySQL 5.6 and 5.7 to CI matrix
renecannao Apr 10, 2026
b6787cf
Add MySQL 5.6 and 5.7 to CI matrix
renecannao Apr 10, 2026
19cdaad
Mention PostgreSQL in Tested Versions intro
renecannao Apr 10, 2026
cc1909d
Trigger CI
renecannao Apr 10, 2026
0fd9216
Trigger CI
renecannao Apr 10, 2026
616ea96
Merge pull request #54 from datacharmer/add-postgresql-support
datacharmer Apr 10, 2026
e324b56
Merge pull request #52 from datacharmer/fix-ci-dbdeployer-path
datacharmer Apr 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 117 additions & 0 deletions .github/workflows/ci-mariadb.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
name: CI MariaDB

on:
push:
pull_request:
schedule:
# Weekly on Monday at 3:07 AM UTC
- cron: '7 3 * * 1'
workflow_dispatch:

jobs:
employees-mariadb:
name: Employees DB (${{ matrix.mariadb-version }})
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
mariadb-version:
- '10.11.9'
- '11.4.5'
- '12.1.2'
env:
SANDBOX_BINARY: ${{ github.workspace }}/opt/mysql
MARIADB_VERSION: ${{ matrix.mariadb-version }}

steps:
- uses: actions/checkout@v4

- name: Install system libraries
run: |
sudo apt-get update
sudo apt-get install -y libaio1 libnuma1 libncurses5

- name: Install dbdeployer
run: |
curl -s https://raw.githubusercontent.com/ProxySQL/dbdeployer/master/scripts/dbdeployer-install.sh | bash
sudo mv dbdeployer /usr/local/bin/dbdeployer

- name: Cache MariaDB tarball
uses: actions/cache@v4
with:
path: /tmp/mariadb-tarball
key: mariadb-${{ matrix.mariadb-version }}-linux-x86_64-v1

- name: Download MariaDB
run: |
TARBALL="mariadb-${MARIADB_VERSION}-linux-systemd-x86_64.tar.gz"
URL="https://archive.mariadb.org/mariadb-${MARIADB_VERSION}/bintar-linux-systemd-x86_64/${TARBALL}"
mkdir -p /tmp/mariadb-tarball
if [ ! -f "/tmp/mariadb-tarball/$TARBALL" ]; then
echo "Downloading MariaDB ${MARIADB_VERSION}..."
curl -L -f -o "/tmp/mariadb-tarball/$TARBALL" "$URL"
fi
ls -lh "/tmp/mariadb-tarball/$TARBALL"

- name: Unpack MariaDB
run: |
mkdir -p "$SANDBOX_BINARY"
TARBALL="mariadb-${MARIADB_VERSION}-linux-systemd-x86_64.tar.gz"
dbdeployer unpack "/tmp/mariadb-tarball/$TARBALL" \
--sandbox-binary="$SANDBOX_BINARY"

- name: Deploy sandbox
run: |
dbdeployer deploy single "$MARIADB_VERSION" \
--sandbox-binary="$SANDBOX_BINARY"

- name: Load employees database
run: |
~/sandboxes/msb_*/use < employees.sql

- name: Test MD5 integrity
run: |
~/sandboxes/msb_*/use -t < test_employees_md5.sql > /tmp/test_md5.txt
cat /tmp/test_md5.txt
md5_ok=$(grep -iw ok /tmp/test_md5.txt | wc -l | tr -d ' \t')
if [ "$md5_ok" != "8" ]; then
echo "MD5 FAIL - expected 8 OK - found $md5_ok"
exit 1
fi
echo "MD5 OK ($md5_ok matches)"

- name: Test SHA integrity
run: |
~/sandboxes/msb_*/use -t < test_employees_sha.sql > /tmp/test_sha.txt
cat /tmp/test_sha.txt
sha_ok=$(grep -iw ok /tmp/test_sha.txt | wc -l | tr -d ' \t')
if [ "$sha_ok" != "8" ]; then
echo "SHA FAIL - expected 8 OK - found $sha_ok"
exit 1
fi
echo "SHA OK ($sha_ok matches)"

- name: Load objects (stored procedures/functions)
run: |
~/sandboxes/msb_*/use < objects.sql

- name: Test stored procedures
run: |
SBDIR=$(ls -d ~/sandboxes/msb_*)
# Test functions
$SBDIR/use -BN -e "SELECT emp_name(10001);" employees
$SBDIR/use -BN -e "SELECT emp_dept_name(10001);" employees
$SBDIR/use -BN -e "SELECT current_manager('d001');" employees
# Test procedure
$SBDIR/use -t -e "CALL show_departments();" employees

- name: Verify MariaDB version
run: |
~/sandboxes/msb_*/use -BN -e "SELECT VERSION();" | grep -i mariadb
echo "OK: MariaDB detected"

- name: Cleanup
if: always()
run: |
dbdeployer delete all --skip-confirm 2>/dev/null || true
pkill -9 -u "$USER" mysqld 2>/dev/null || true
Loading