mirror of
https://github.com/HerculesWS/Hercules
synced 2026-08-15 12:23:13 -04:00
84 lines
2.7 KiB
YAML
84 lines
2.7 KiB
YAML
name: mysql
|
|
|
|
on: workflow_call
|
|
|
|
env:
|
|
MYSQL_DATABASE: 'ragnarok'
|
|
MYSQL_USER: 'ragnarok'
|
|
MYSQL_PASSWORD: 'ragnarok'
|
|
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
|
|
DEBIAN_COMMON_PACKAGES: make zlib1g-dev libpcre3-dev git python3 libzstd-dev
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 30
|
|
strategy:
|
|
matrix:
|
|
CC: [gcc]
|
|
RENEWAL: [""]
|
|
CLIENT_TYPE: [""]
|
|
HTTPLIB: ["", "--with-http_parser=llhttp"]
|
|
SANITIZER: ["--disable-manager", "--enable-sanitize=full"]
|
|
PACKET_VERSION: ["--enable-packetver=20221024"]
|
|
MYSQL: ["5.6", "5.7", "latest"]
|
|
|
|
# github.head_ref will stop previous runs in the same PR (if in a PR)
|
|
# github.run_id is a fallback when outside a PR (e.g. every merge in master will run, and previous won't stop)
|
|
concurrency:
|
|
group: mysql-${{ github.head_ref || github.run_id }}_${{ matrix.CC }}_${{ matrix.RENEWAL }}_${{ matrix.CLIENT_TYPE }}_${{ matrix.HTTPLIB }}_${{ matrix.SANITIZER }}_${{ matrix.PACKET_VERSION}}_${{ matrix.MYSQL }}
|
|
cancel-in-progress: true
|
|
|
|
container:
|
|
image: ubuntu:24.04
|
|
services:
|
|
mysql:
|
|
image: mysql:${{ matrix.MYSQL }}
|
|
ports:
|
|
- 33306:3306
|
|
env:
|
|
MYSQL_DATABASE: 'ragnarok'
|
|
MYSQL_USER: 'ragnarok'
|
|
MYSQL_PASSWORD: 'ragnarok'
|
|
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
|
|
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3
|
|
env:
|
|
INSTALL_PACKAGES: ${{ matrix.CC }} mysql-client libmysqlclient-dev
|
|
SQLHOST: mysql
|
|
CC: ${{ matrix.CC }}
|
|
CONFIGURE_FLAGS: CC=${{ matrix.CC }} --enable-debug --enable-Werror --enable-buildbot ${{ matrix.RENEWAL }} ${{ matrix.HTTPLIB }} ${{ matrix.CLIENT_TYPE }} ${{ matrix.SANITIZER }} ${{ matrix.PACKET_VERSION }}
|
|
PACKET_VERSION: ${{ matrix.PACKET_VERSION }}
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
fetch-depth: 1
|
|
|
|
- name: info
|
|
run: |
|
|
uname -a
|
|
|
|
- name: install packages
|
|
run: |
|
|
./tools/ci/retry.sh apt-get update
|
|
./tools/ci/retry.sh apt-get install -y -qq $INSTALL_PACKAGES $DEBIAN_COMMON_PACKAGES
|
|
|
|
- name: init database
|
|
run: |
|
|
./tools/ci/travis.sh importdb ragnarok ragnarok ragnarok $SQLHOST
|
|
|
|
- name: get plugins
|
|
run: |
|
|
./tools/ci/travis.sh getplugins || true
|
|
|
|
- name: build
|
|
run: |
|
|
./tools/ci/travis.sh build $CONFIGURE_FLAGS
|
|
|
|
- name: test
|
|
run: |
|
|
./tools/ci/travis.sh test ragnarok ragnarok ragnarok $SQLHOST
|
|
|
|
- name: extra test
|
|
if: env.PACKET_VERSION != '--enable-packetver=20130724'
|
|
run: |
|
|
./tools/ci/travis.sh extratest
|