Merge pull request #247 from Sebastian-Webster/246-remove-binarydirec… #850
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: OS Compatibility | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
os: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-14, macos-15, macos-15-intel, macos-26, ubuntu-22.04, ubuntu-24.04, windows-2022, windows-2025, ubuntu-22.04-arm, ubuntu-24.04-arm, windows-11-arm] | |
#There is no 10.0.0 at the time of writing, but since greater than characters are not allowed in GitHub Actions artifacts names, 9.0.1 - 10.0.0 will be used instead of >9.0.0 | |
version-requirement: ['5.7.19 - 5.7.24', '5.7.25 - 5.7.29', '5.7.30 - 5.7.34', '5.7.35 - 5.7.39', '5.7.40 - 5.7.44', '8.0.0 - 8.0.4', '8.0.4 - 8.0.13', '8.0.14 - 8.0.19', '8.0.20 - 8.0.24', '8.0.25 - 8.0.29', '8.0.30 - 8.0.34', '8.0.35 - 8.0.39', '8.0.40 - 8.3.0', '8.4.0 - 9.0.0', '9.0.1 - 10.0.0'] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup node LTS | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
check-latest: true | |
- name: Install packages | |
run: npm ci | |
- name: Run tests | |
env: | |
VERSION_REQUIREMENT: ${{ matrix.version-requirement }} | |
run: npm run os-compat:ci | |
- name: Move MySQLMSN directory for GitHub Actions upload | |
if: ${{ failure() }} | |
env: | |
MOVE_MYSQLMSN_TO: ${{ runner.os == 'Windows' && 'C:\\Users\\RUNNER~1\\mysqlmsn' || '/tmp/mysqlmsn' }} | |
run: npx ts-node tests/ci/DirMoveGitHubActions.ts | |
- name: Upload mysqlmsn directory (Windows) | |
if: ${{ failure() && runner.os == 'Windows' }} | |
uses: actions/[email protected] | |
with: | |
name: ${{ matrix.os }}-${{ matrix.version-requirement }} | |
path: "C:\\Users\\RUNNER~1\\mysqlmsn" | |
compression-level: 9 | |
- name: Upload mysqlmsn directory (Not Windows) | |
if: ${{ failure() && runner.os != 'Windows' }} | |
uses: actions/[email protected] | |
with: | |
name: ${{ matrix.os }}-${{ matrix.version-requirement }} | |
path: /tmp/mysqlmsn | |
compression-level: 9 | |
fedora-docker: | |
runs-on: ubuntu-${{ matrix.ubuntu-version}} | |
strategy: | |
fail-fast: false | |
matrix: | |
version: [41, 42] | |
#There is no 10.0.0 at the time of writing, but since greater than characters are not allowed in GitHub Actions artifacts names, 9.0.1 - 10.0.0 will be used instead of >9.0.0 | |
version-requirement: ['5.7.19 - 5.7.24', '5.7.25 - 5.7.29', '5.7.30 - 5.7.34', '5.7.35 - 5.7.39', '5.7.40 - 5.7.44', '8.0.0 - 8.0.4', '8.0.4 - 8.0.13', '8.0.14 - 8.0.19', '8.0.20 - 8.0.24', '8.0.25 - 8.0.29', '8.0.30 - 8.0.34', '8.0.35 - 8.0.39', '8.0.40 - 8.3.0', '8.4.0 - 9.0.0', '9.0.1 - 10.0.0'] | |
ubuntu-version: [24.04, 24.04-arm] | |
container: fedora:${{ matrix.version }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup node LTS | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
check-latest: true | |
- name: Install required libraries | |
run: sudo dnf install libaio numactl libxcrypt-compat -y | |
- name: Install packages | |
run: npm ci | |
- name: Print available storage space | |
run: df -h | |
- name: Run tests | |
env: | |
VERSION_REQUIREMENT: ${{ matrix.version-requirement }} | |
run: npm run os-compat:ci | |
- name: Upload mysqlmsn directory | |
if: ${{ failure() }} | |
uses: actions/[email protected] | |
with: | |
name: docker-fedora-${{ matrix.version }}-${{ matrix.version-requirement }}-${{ matrix.ubuntu-version}} | |
path: /tmp/mysqlmsn | |
compression-level: 9 | |
alpine-docker: | |
runs-on: ubuntu-${{ matrix.ubuntu-version}} | |
strategy: | |
fail-fast: false | |
matrix: | |
#There is no 10.0.0 at the time of writing, but since greater than characters are not allowed in GitHub Actions artifacts names, 9.0.1 - 10.0.0 will be used instead of >9.0.0 | |
version-requirement: [ '8.4.0 - 9.0.0', '9.0.1 - 10.0.0'] | |
ubuntu-version: [24.04, 24.04-arm] | |
container: alpine:3.22 | |
steps: | |
- name: Install required libraries for test setup | |
run: apk add git nodejs npm | |
- name: Install required libraries for MySQL on alpine | |
run: apk add libaio libstdc++ | |
- name: Checkout | |
run: git clone https://github.com/${{ github.repository }} --branch ${{ github.head_ref || github.ref_name }} --single-branch --depth 1 mysqlmsn | |
- name: Install packages | |
working-directory: mysqlmsn | |
run: npm ci | |
- name: Print available storage space | |
run: df -h | |
- name: Run tests | |
working-directory: mysqlmsn | |
env: | |
VERSION_REQUIREMENT: ${{ matrix.version-requirement }} | |
X_OFF: true | |
run: npm run os-compat:ci |