ci(build): support Ubuntu 26.04 (#25836)

Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
Co-authored-by: sudlud <sudlud@users.noreply.github.com>
This commit is contained in:
Francesco Borzì
2026-07-15 14:21:52 +02:00
committed by GitHub
parent b330948f35
commit a23dd1d385
8 changed files with 45 additions and 46 deletions

8
.github/SECURITY.md vendored
View File

@@ -23,10 +23,10 @@ We support the following versions of dependencies.
### Supported Operating Systems
| Linux (Ubuntu) | Status | Recommended |
| :------------- | :----------------: | :------------------: |
| 24.04 | :white_check_mark: | :large_blue_diamond: |
| 22.04 | :white_check_mark: | |
| 20.04 ≤ | :red_circle: | |
|:---------------| :----------------: | :------------------: |
| 26.04 | :white_check_mark: | :large_blue_diamond: |
| 24.04 | :white_check_mark: | |
| 22.04 ≤ | :red_circle: | |
| macOS | Status | Recommended |
| :---- | :----------------: | :------------------: |

View File

@@ -64,23 +64,14 @@ runs:
run: |
sudo apt update
sudo apt remove needrestart #refer: https://github.com/actions/runner-images/issues/9937
sudo apt-get -y install ccache clang cmake curl google-perftools \
libmysqlclient-dev make unzip build-essential cmake-data \
libboost-all-dev libbz2-dev libncurses5-dev libmysql++-dev \
sudo apt-get -y install ccache clang cmake curl \
make unzip build-essential cmake-data \
libboost-all-dev libbz2-dev libmysql++-dev \
libreadline6-dev libssl-dev libtool openssl zlib1g-dev
# Account for https://github.com/actions/runner-images/issues/8659
# based off of https://github.com/actions/runner-images/issues/8659#issuecomment-1852353116
UBUNTU_VERSION="$(grep VERSION_ID /etc/os-release | cut -f2 -d\")"
source /etc/os-release
if [[ "$VERSION_CODENAME" == "jammy" ]]; then
if [[ "${{ inputs.CC }}" =~ "clang-" ]]; then
CLANG_VERSION="$(echo '${{ inputs.CC }}' | cut -f2 -d\-)"
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo add-apt-repository "deb http://apt.llvm.org/$VERSION_CODENAME/ llvm-toolchain-$VERSION_CODENAME-$CLANG_VERSION main"
sudo apt-get -qq update
sudo apt-get -qq install '${{ inputs.CC }}'
fi
if [[ "$(lsb_release -sr)" == "26.04" ]]; then
sudo apt-get -y install libgoogle-perftools-dev default-libmysqlclient-dev
else
sudo apt-get -y install google-perftools libmysqlclient-dev libncurses5-dev
fi
- name: setup ccache

View File

@@ -30,10 +30,6 @@ jobs:
fail-fast: true
matrix:
include:
- os: ubuntu-22.04
compiler:
CC: clang-15
CXX: clang++-15
- os: ubuntu-24.04
compiler:
CC: clang-18
@@ -42,6 +38,10 @@ jobs:
compiler:
CC: gcc-14
CXX: g++-14
- os: ubuntu-26.04
compiler:
CC: clang-20
CXX: clang++-20
runs-on: ${{ matrix.os }}
name: ${{ matrix.os }}-${{ matrix.compiler.CC }}-nopch
if: github.repository == 'azerothcore/azerothcore-wotlk' && !github.event.pull_request.draft

View File

@@ -30,14 +30,14 @@ jobs:
fail-fast: true
matrix:
include:
- os: ubuntu-22.04
compiler:
CC: clang-15
CXX: clang++-15
- os: ubuntu-24.04
compiler:
CC: clang-18
CXX: clang++-18
- os: ubuntu-26.04
compiler:
CC: clang-20
CXX: clang++-20
runs-on: ${{ matrix.os }}
name: ${{ matrix.os }}-${{ matrix.compiler.CC }}-pch
if: github.repository == 'azerothcore/azerothcore-wotlk' && !github.event.pull_request.draft

View File

@@ -41,8 +41,8 @@ jobs:
fail-fast: true
matrix:
include:
- os: ubuntu-22.04
- os: ubuntu-24.04
- os: ubuntu-26.04
runs-on: ${{ matrix.os }}
if: github.repository == 'azerothcore/azerothcore-wotlk' && !github.event.pull_request.draft
steps:
@@ -73,8 +73,8 @@ jobs:
fail-fast: true
matrix:
include:
- os: ubuntu-22.04
- os: ubuntu-24.04
- os: ubuntu-26.04
runs-on: ${{ matrix.os }}
if: github.repository == 'azerothcore/azerothcore-wotlk' && !github.event.pull_request.draft
steps:

View File

@@ -12,15 +12,15 @@ fi
UBUNTU_VERSION=$(lsb_release -sr);
case $UBUNTU_VERSION in
"22.04")
;;
"24.04")
;;
"26.04")
;;
*)
echo "########## ########## ##########"
echo ""
echo " using unsupported Ubuntu version " $UBUNTU_VERSION
echo " please update to Ubuntu 22.04 or later"
echo " please update to Ubuntu 24.04 or later"
echo ""
echo "########## ########## ##########"
;;
@@ -30,21 +30,32 @@ $SUDO apt update
# shared deps
DEBIAN_FRONTEND="noninteractive" $SUDO \
apt-get -y install ccache clang cmake curl google-perftools libmysqlclient-dev make unzip jq screen tmux \
libreadline-dev libncurses5-dev libncursesw5-dev libbz2-dev git gcc g++ libssl-dev \
apt-get -y install ccache clang cmake curl make unzip jq screen tmux \
libreadline-dev libbz2-dev git gcc g++ libssl-dev \
libncurses-dev libboost-all-dev gdb gdbserver expect
# version-specific deps
if [[ "$UBUNTU_VERSION" == "26.04" ]]; then
DEBIAN_FRONTEND="noninteractive" $SUDO \
apt-get -y install libgoogle-perftools-dev default-libmysqlclient-dev
else
DEBIAN_FRONTEND="noninteractive" $SUDO \
apt-get -y install google-perftools libmysqlclient-dev libncurses5-dev libncursesw5-dev
fi
VAR_PATH="$CURRENT_PATH/../../../../var"
# Do not install MySQL if we are in docker (It will be used a docker container instead) or we are explicitly skipping it.
if [[ $DOCKER != 1 && $SKIP_MYSQL_INSTALL != 1 ]]; then
# run noninteractive install for MYSQL 8.4 LTS
wget https://dev.mysql.com/get/mysql-apt-config_0.8.35-1_all.deb -P "$VAR_PATH"
# resolve expired key issue
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
DEBIAN_FRONTEND="noninteractive" $SUDO dpkg -i "$VAR_PATH/mysql-apt-config_0.8.35-1_all.deb"
$SUDO apt-get update
if [[ "$UBUNTU_VERSION" == "24.04" ]]; then
# run noninteractive install for MYSQL 8.4 LTS
wget https://dev.mysql.com/get/mysql-apt-config_0.8.35-1_all.deb -P "$VAR_PATH"
# resolve expired key issue
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
DEBIAN_FRONTEND="noninteractive" $SUDO dpkg -i "$VAR_PATH/mysql-apt-config_0.8.35-1_all.deb"
$SUDO apt-get update
fi
DEBIAN_FRONTEND="noninteractive" $SUDO apt-get install -y mysql-server
fi

View File

@@ -360,7 +360,7 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw) {\
// Bring in shared_ptr and weak_ptr
#if (defined(__GNUC__) && defined(__APPLE__)) || defined(__linux__)
#include <ciso646> // Defines _LIBCC_VERSION if linking against libc++ or does nothing
#include <version> // Defines _LIBCC_VERSION if linking against libc++ or does nothing
#endif
#if (!defined(_LIBCPP_VERSION) && defined(__APPLE__)) || (!defined(_LIBCPP_VERSION) && defined(__linux__))
# include <tr1/memory>

View File

@@ -32,9 +32,6 @@ class TestSpellEntryHelper
public:
TestSpellEntryHelper()
{
// Zero initialize all fields
std::memset(&_entry, 0, sizeof(_entry));
// Set safe defaults
_entry.EquippedItemClass = -1;
_entry.SchoolMask = SPELL_SCHOOL_MASK_NORMAL;
@@ -154,7 +151,7 @@ public:
}
private:
SpellEntry _entry;
SpellEntry _entry{};
};
/**