Skip to content

Commit ad56ca4

Browse files
authored
CI: update runtime environments (#1299)
1 parent a89fd5b commit ad56ca4

File tree

4 files changed

+155
-68
lines changed

4 files changed

+155
-68
lines changed

.github/workflows/build.yml

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -4,46 +4,45 @@ jobs:
44
build:
55
name: >-
66
${{ matrix.os }} ruby ${{ matrix.ruby }} ${{ matrix.db }}
7-
# Run all the tests on the new environment as much as possible.
8-
# https://docs.github.com/en/free-pro-team@latest/actions/reference/specifications-for-github-hosted-runners
97
runs-on: ${{ matrix.os }}
108
continue-on-error: ${{ matrix.allow-failure || false }}
119
strategy:
1210
matrix:
13-
os:
14-
# Use ubuntu-18.04 instead of ubuntu-20.04 temporarily, due to a failing test on mysql 8.0.
15-
# https://github.com/brianmario/mysql2/issues/1165
16-
# - ubuntu-20.04 # focal
17-
- ubuntu-18.04 # bionic
18-
ruby:
19-
- '3.2'
20-
- '3.1'
21-
- '3.0'
22-
- '2.7'
23-
- '2.6'
24-
- '2.5'
25-
- '2.4'
26-
- '2.3'
27-
- '2.2'
28-
- '2.1'
2911
include:
30-
# Comment out due to ci/setup.sh stucking.
31-
# - {os: ubuntu-18.04, ruby: 2.4, db: mariadb10.1}
32-
- {os: ubuntu-20.04, ruby: '2.4', db: mariadb10.3}
33-
- {os: ubuntu-18.04, ruby: '2.4', db: mysql57}
12+
# Ruby 3.x on Ubuntu 22.04 LTS (latest at this time)
13+
- {os: ubuntu-22.04, ruby: 'head', db: mysql80}
14+
- {os: ubuntu-22.04, ruby: '3.2', db: mysql80}
15+
- {os: ubuntu-22.04, ruby: '3.1', db: mysql80}
16+
- {os: ubuntu-22.04, ruby: '3.0', db: mysql80}
17+
18+
# Ruby 2.x on Ubuntu 20.04 LTS
19+
- {os: ubuntu-20.04, ruby: '2.7', db: mysql80}
20+
- {os: ubuntu-20.04, ruby: '2.6', db: mysql80}
21+
- {os: ubuntu-20.04, ruby: '2.5', db: mysql80}
3422
- {os: ubuntu-20.04, ruby: '2.4', db: mysql80}
35-
- {os: ubuntu-18.04, ruby: 'head'}
36-
# db: A DB's brew package name in macOS case.
37-
# Set a name "db: '[email protected]'" when using an old version.
38-
# MariaDB lastet version
39-
# Allow failure due to the following test failures that rarely happens.
23+
- {os: ubuntu-20.04, ruby: '2.3', db: mysql80}
24+
- {os: ubuntu-20.04, ruby: '2.2', db: mysql80}
25+
- {os: ubuntu-20.04, ruby: '2.1', db: mysql80}
26+
- {os: ubuntu-20.04, ruby: '2.0', db: mysql80}
27+
28+
# db: on Linux, ci/setup.sh installs the specified packages
29+
# db: on MacOS, installs a Homebrew package use "[email protected]" to specify a version
30+
31+
- {os: ubuntu-22.04, ruby: '3.0', db: mariadb10.6}
32+
- {os: ubuntu-20.04, ruby: '2.7', db: mariadb10.6}
33+
- {os: ubuntu-20.04, ruby: '2.7', db: mysql80}
34+
- {os: ubuntu-18.04, ruby: '2.7', db: mysql57}
35+
36+
# TODO - Windows CI
37+
# - {os: windows-2022, ruby: '3.2', db: mysql80}
38+
# - {os: windows-2022, ruby: '2.7', db: mysql80}
39+
40+
# Allow failure due to this issue:
4041
# https://github.com/brianmario/mysql2/issues/1194
4142
- {os: macos-latest, ruby: '2.6', db: mariadb, ssl: [email protected], allow-failure: true}
42-
# MySQL latest version
43-
# Allow failure due to the issue #1194.
4443
- {os: macos-latest, ruby: '2.6', db: mysql, ssl: [email protected], allow-failure: true}
4544
# On the fail-fast: true, it cancels all in-progress jobs
46-
# if any matrix job fails unlike Travis fast_finish.
45+
# if any matrix job fails, which we don't want.
4746
fail-fast: false
4847
env:
4948
BUNDLE_WITHOUT: development
@@ -52,14 +51,15 @@ jobs:
5251
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
5352
steps:
5453
- uses: actions/checkout@v3
55-
# https://github.com/ruby/setup-ruby
5654
- uses: ruby/setup-ruby@v1
5755
with:
5856
ruby-version: ${{ matrix.ruby }}
5957
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
60-
- if: matrix.db
61-
run: echo 'DB=${{ matrix.db }}' >> $GITHUB_ENV
62-
- run: sudo echo "127.0.0.1 mysql2gem.example.com" | sudo tee -a /etc/hosts
58+
- if: runner.os == 'Linux' || runner.os == 'macOS'
59+
run: sudo echo "127.0.0.1 mysql2gem.example.com" | sudo tee -a /etc/hosts
60+
- if: runner.os == 'Windows'
61+
run: echo "127.0.0.1 mysql2gem.example.com" | tee -a C:/Windows/System32/drivers/etc/hosts
62+
- run: echo 'DB=${{ matrix.db }}' >> $GITHUB_ENV
6363
- run: bash ci/setup.sh
6464
- if: matrix.ssl
6565
run: echo "rake_spec_opts=--with-openssl-dir=$(brew --prefix ${{ matrix.ssl }})" >> $GITHUB_ENV

ci/mariadb106.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#!/usr/bin/env bash
2+
set -eux
3+
4+
apt purge -qq '^mysql*' '^libmysql*'
5+
rm -fr /etc/mysql
6+
rm -fr /var/lib/mysql
7+
8+
apt-key add support/C74CD1D8.asc
9+
add-apt-repository "deb https://downloads.mariadb.com/MariaDB/mariadb-10.6/repo/ubuntu $(lsb_release -cs) main"
10+
apt install -y -o Dpkg::Options::='--force-confnew' mariadb-server-10.6 libmariadb-dev

ci/setup.sh

Lines changed: 7 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ if [[ -n ${GITHUB_ACTIONS-} && -z ${DB-} ]]; then
2121
sudo apt-get install -qq mysql-server-8.0 mysql-client-core-8.0 mysql-client-8.0
2222
CHANGED_PASSWORD=true
2323
;;
24+
jammy)
25+
sudo apt-get install -qq mysql-server-8.0 mysql-client-core-8.0 mysql-client-8.0
26+
CHANGED_PASSWORD=true
27+
;;
2428
*)
2529
;;
2630
esac
@@ -44,40 +48,9 @@ if [[ -n ${DB-} && x$DB =~ ^xmysql80 ]]; then
4448
CHANGED_PASSWORD=true
4549
fi
4650

47-
# Install MariaDB client headers after Travis CI fix for MariaDB 10.2 broke earlier 10.x
48-
if [[ -n ${DB-} && x$DB =~ ^xmariadb10.0 ]]; then
49-
if [[ -n ${GITHUB_ACTIONS-} ]]; then
50-
sudo apt-get install -y -o Dpkg::Options::='--force-confnew' mariadb-server mariadb-server-10.0 libmariadb2
51-
CHANGED_PASSWORD_BY_RECREATE=true
52-
else
53-
sudo apt-get install -y -o Dpkg::Options::='--force-confnew' libmariadbclient-dev
54-
fi
55-
fi
56-
57-
# Install MariaDB client headers after Travis CI fix for MariaDB 10.2 broke earlier 10.x
58-
if [[ -n ${DB-} && x$DB =~ ^xmariadb10.1 ]]; then
59-
if [[ -n ${GITHUB_ACTIONS-} ]]; then
60-
sudo apt-get install -y -o Dpkg::Options::='--force-confnew' mariadb-server mariadb-server-10.1 libmariadb-dev
61-
CHANGED_PASSWORD_BY_RECREATE=true
62-
else
63-
sudo apt-get install -y -o Dpkg::Options::='--force-confnew' libmariadbclient-dev
64-
fi
65-
fi
66-
67-
# Install MariaDB 10.2 if DB=mariadb10.2
68-
# NOTE this is a workaround until Travis CI merges a fix to its mariadb addon.
69-
if [[ -n ${DB-} && x$DB =~ ^xmariadb10.2 ]]; then
70-
sudo apt-get install -y -o Dpkg::Options::='--force-confnew' mariadb-server mariadb-server-10.2 libmariadbclient18
71-
fi
72-
73-
# Install MariaDB 10.3 if DB=mariadb10.3
74-
if [[ -n ${GITHUB_ACTIONS-} && -n ${DB-} && x$DB =~ ^xmariadb10.3 ]]; then
75-
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
76-
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
77-
sudo apt-get purge -y 'mysql-common*' 'mysql-client*' 'mysql-server*'
78-
sudo mv /etc/mysql "/etc/mysql-$(date +%Y%m%d-%H%M%S)"
79-
sudo mv /var/lib/mysql "/var/lib/mysql-$(date +%Y%m%d-%H%M%S)"
80-
sudo apt-get install -y -o Dpkg::Options::='--force-confnew' mariadb-server mariadb-server-10.3 libmariadb-dev
51+
# Install MariaDB 10.6 if DB=mariadb10.6
52+
if [[ -n ${GITHUB_ACTIONS-} && -n ${DB-} && x$DB =~ ^xmariadb10.6 ]]; then
53+
sudo bash ci/mariadb106.sh
8154
CHANGED_PASSWORD_BY_RECREATE=true
8255
fi
8356

support/C74CD1D8.asc

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
-----BEGIN PGP PUBLIC KEY BLOCK-----
2+
3+
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
103+
=mCOI
104+
-----END PGP PUBLIC KEY BLOCK-----

0 commit comments

Comments
 (0)