Skip to content

update

update #50

Workflow file for this run

name: CMake
on: [push, pull_request]
jobs:
build:
strategy:
matrix:
os: [windows-latest,ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
name: Build/${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v3
# - uses: seanmiddleditch/gha-setup-ninja@master
- name: install client drivers (macOS)
if: contains(matrix.os, 'macos')
run : |
HOMEBREW_NO_AUTO_UPDATE=1 brew install mysql-client
brew link --force mysql-client
- name: configure
run: cmake .
- name: build package
run: cmake --build . --config Release --target package
- name: test_install
run: |
cmake --install . --config Release --prefix install_dir
- name: Archive build
uses: actions/upload-artifact@v3
with:
name: build-${{ matrix.os }}
retention-days: 1
path: |
install_dir
test:
strategy:
matrix:
os: [windows-latest,ubuntu-latest, macos-latest]
mysql-distribution: [mariadb, mysql]
needs: build
runs-on: ${{ matrix.os }}
env:
COMMON_SYSBENCH_PARAMS: --mysql-user=root --mysql-socket=/tmp/mysql.sock --time=60 --table-size=100000 --report-interval=1 --histogram
name: Test/${{ matrix.os }}/${{ matrix.mysql-distribution }}
steps:
- name: Download build
uses: actions/download-artifact@v3
with:
name: build-${{ matrix.os }}
- name: chmod +x bin/sysbench
shell: bash
if: ${{ !contains(matrix.os, 'windows') }}
run: |
ls -l bin
chmod +x bin/sysbench
- name: install client drivers (macOS)
if: contains(matrix.os, 'macos')
run : |
HOMEBREW_NO_AUTO_UPDATE=1 brew install mysql-client
brew link --force mysql-client
- name: update environment (Windows)
if: contains(matrix.os, 'windows')
run: |
echo "$pwd\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
cat $env:GITHUB_PATH
- name: update environment (non-Windows)
if: ${{ !contains(matrix.os, 'windows') }}
run: |
echo "$PWD/bin" >> $GITHUB_PATH
cat $GITHUB_PATH
echo "LUA_PATH=$PWD/share/sysbench/?.lua" >> $GITHUB_ENV
- name: setup-server
uses: shogo82148/actions-setup-mysql@v1
env: # set temp directory, so that datadir ends up on fast disk
TMPDIR: ${{ runner.temp }}
TMP: ${{ runner.temp }}
TEMP: ${{ runner.temp }}
with:
distribution: ${{ matrix.mysql-distribution }}
my-cnf: |
${{ matrix.mysql-distribution == 'mysql' && 'innodb_redo_log_capacity' || 'innodb_log_file_size' }}=4G
innodb_buffer_pool_size=512MB
max_allowed_packet=16MB
skip-log-bin
loose-enable-named-pipe
socket=/tmp/mysql.sock
max_connections=1000
innodb_max_dirty_pages_pct_lwm=10
- name: create database sbtest
run: mysql -uroot -e "create database sbtest"
- name: sysbench oltp_read_write prepare
run: sysbench oltp_read_write --mysql-user=root --mysql-host=127.0.0.1 --mysql-port=3306 --table-size=100000 prepare
- name: sysbench oltp_point_select run
run: sysbench oltp_point_select ${{ env.COMMON_SYSBENCH_PARAMS }} --threads=10 run
- name: sysbench oltp_update_index run single thread innodb_flush_log_at_trx_commit=1
run: |
mysql -uroot -e "set global innodb_flush_log_at_trx_commit=1"
sysbench oltp_update_index ${{ env.COMMON_SYSBENCH_PARAMS }} run
- name: set global innodb_log_file_buffering=1
if: ${{ matrix.mysql-distribution == 'mariadb' && !contains(matrix.os, 'macos') }}
run: |
mysql -uroot -e "set global innodb_log_file_buffering=1"
- name: sysbench oltp_update_index run single thread innodb_flush_log_at_trx_commit=2
run: |
mysql -uroot -e "set global innodb_flush_log_at_trx_commit=2"
sysbench oltp_update_index ${{ env.COMMON_SYSBENCH_PARAMS }} run
mysql -uroot -e "set global innodb_flush_log_at_trx_commit=1"
- name: set global innodb_log_file_buffering=0
if: ${{ matrix.mysql-distribution == 'mariadb' && !contains(matrix.os, 'macos') }}
run: |
mysql -uroot -e "set global innodb_log_file_buffering=0"
- name: sysbench oltp_update_index run 40 threads
run: sysbench oltp_update_index ${{ env.COMMON_SYSBENCH_PARAMS }} --threads=40 run
- name: sysbench oltp cleanup
run: sysbench oltp_read_write ${{ env.COMMON_SYSBENCH_PARAMS }} cleanup
- name: fileio seqrewr prepare
run: sysbench fileio --file-block-size=4096 --file-test-mode=seqrewr --file-num=1 prepare
- name: fileio seqrewr run fdatasync
if: ${{ !contains(matrix.os, 'macos') }}
run: sysbench fileio --file-block-size=4096 --file-test-mode=seqrewr --file-fsync-mode=fdatasync --file-fsync-all=on --file-num=1 --report-interval=1 --time=30 --histogram run
- name: fileio seqrewr run fsync
run: sysbench fileio --file-block-size=4096 --file-test-mode=seqrewr --file-fsync-mode=fsync --file-fsync-all=on --file-num=1 --report-interval=1 --time=30 --histogram run