@@ -90,30 +90,43 @@ jobs:
9090 if : steps.changes.outputs.end_to_end == 'true'
9191 timeout-minutes : 10
9292 run : |
93-
94- # Get key to latest MySQL repo
95- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
96- # Setup MySQL 8.0
97- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.35-1_all.deb
98- echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
99- sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
93+ export DEBIAN_FRONTEND="noninteractive"
10094 sudo apt-get -qq update
10195
96+ # Uninstall any previously installed MySQL first; the ubuntu-24.04 runner
97+ # image ships with MySQL pre-installed, which conflicts with our install.
98+ sudo DEBIAN_FRONTEND="noninteractive" apt-get remove -y --purge mysql-server mysql-client mysql-common
99+ sudo apt-get -y autoremove
100+ sudo apt-get -y autoclean
101+ sudo rm -rf /var/lib/mysql
102+ sudo rm -rf /etc/mysql
103+
102104 # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
103105 # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
104- curl -L -O http://mirrors.kernel.org /ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
106+ wget http://archive.ubuntu.com /ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
105107 sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
106108 # libtinfo5 is also needed for older MySQL 5.7 builds.
107- curl -L -O http://mirrors.kernel.org /ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
109+ wget http://archive.ubuntu.com /ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
108110 sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
109111
112+ # Get key to latest MySQL repo
113+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
114+ # Setup MySQL 8.0. 0.8.35-1 ships the current (non-expired) MySQL repo key.
115+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.35-1_all.deb
116+ echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
117+ sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
118+ sudo apt-get -qq update
119+
110120 # Install everything else we need, and configure
111121 sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
112122
113123 sudo service mysql stop
114124 sudo service etcd stop
125+ # The apparmor profile is removed when we uninstall the pre-installed MySQL,
126+ # so we recreate an empty one before disabling it.
127+ sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld"
115128 sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
116- sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
129+ sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld || echo "could not remove mysqld profile"
117130 go mod download
118131
119132 # install JUnit report formatter
0 commit comments