mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2024-11-21 16:37:20 +01:00
CI: Update Ubuntu runners to 24.04, but keep 22.04 for Linux builds
Pin clang-format to version 16, and black to 24.10.0. Keep using Ubuntu 22.04 for Linux builds for portability.
This commit is contained in:
parent
8a914eefa3
commit
672cea4d08
22
.github/disabled_workflows/static_checks.yml
vendored
22
.github/disabled_workflows/static_checks.yml
vendored
@ -8,26 +8,20 @@ concurrency:
|
|||||||
jobs:
|
jobs:
|
||||||
static-checks:
|
static-checks:
|
||||||
name: Static Checks (clang-format, black format, file format, documentation checks)
|
name: Static Checks (clang-format, black format, file format, documentation checks)
|
||||||
runs-on: ubuntu-20.04
|
runs-on: "ubuntu-24.04"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
# Azure repositories are not reliable, we need to prevent Azure giving us packages.
|
|
||||||
- name: Make apt sources.list use the default Ubuntu repositories
|
|
||||||
run: |
|
|
||||||
sudo rm -f /etc/apt/sources.list.d/*
|
|
||||||
sudo cp -f misc/ci/sources.list /etc/apt/sources.list
|
|
||||||
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
|
|
||||||
sudo apt-add-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main"
|
|
||||||
sudo apt-get update
|
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get install -qq dos2unix recode clang-format-13
|
# Azure repositories are flaky, remove them.
|
||||||
sudo update-alternatives --remove-all clang-format
|
sudo rm -f /etc/apt/sources.list.d/{azure,microsoft}*
|
||||||
sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-13 100
|
sudo apt-get update
|
||||||
sudo pip3 install black==22.3.0 pygments
|
sudo apt-get install -qq dos2unix libxml2-utils python3-pip moreutils
|
||||||
|
sudo update-alternatives --remove-all clang-format || true
|
||||||
|
sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-16 100
|
||||||
|
sudo pip3 install black==24.10.0 pygments
|
||||||
|
|
||||||
# This needs to happen before Python and npm execution; it must happen before any extra files are written.
|
# This needs to happen before Python and npm execution; it must happen before any extra files are written.
|
||||||
- name: .gitignore checks (gitignore_check.sh)
|
- name: .gitignore checks (gitignore_check.sh)
|
||||||
|
10
.github/workflows/android_builds.yml
vendored
10
.github/workflows/android_builds.yml
vendored
@ -12,20 +12,12 @@ concurrency:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
android-template:
|
android-template:
|
||||||
runs-on: "ubuntu-20.04"
|
runs-on: "ubuntu-24.04"
|
||||||
|
|
||||||
name: Template (target=release, tools=no)
|
name: Template (target=release, tools=no)
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
# Azure repositories are not reliable, we need to prevent azure giving us packages.
|
|
||||||
- name: Make apt sources.list use the default Ubuntu repositories
|
|
||||||
run: |
|
|
||||||
sudo rm -f /etc/apt/sources.list.d/*
|
|
||||||
sudo cp -f misc/ci/sources.list /etc/apt/sources.list
|
|
||||||
sudo apt-get update
|
|
||||||
|
|
||||||
- name: Set up Java 17
|
- name: Set up Java 17
|
||||||
uses: actions/setup-java@v4
|
uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
|
2
.github/workflows/javascript_builds.yml
vendored
2
.github/workflows/javascript_builds.yml
vendored
@ -14,7 +14,7 @@ concurrency:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
javascript-template:
|
javascript-template:
|
||||||
runs-on: "ubuntu-22.04"
|
runs-on: "ubuntu-24.04"
|
||||||
name: Template (target=release, tools=no)
|
name: Template (target=release, tools=no)
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
16
.github/workflows/linux_builds.yml
vendored
16
.github/workflows/linux_builds.yml
vendored
@ -12,7 +12,8 @@ concurrency:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-linux:
|
build-linux:
|
||||||
runs-on: "ubuntu-20.04"
|
# Stay one LTS before latest to increase portability of Linux artifacts.
|
||||||
|
runs-on: "ubuntu-22.04"
|
||||||
name: ${{ matrix.name }}
|
name: ${{ matrix.name }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
@ -46,14 +47,13 @@ jobs:
|
|||||||
- name: Linux dependencies
|
- name: Linux dependencies
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
# Azure repositories are not reliable, we need to prevent azure giving us packages.
|
# Azure repositories are flaky, remove them.
|
||||||
sudo rm -f /etc/apt/sources.list.d/*
|
sudo rm -f /etc/apt/sources.list.d/{azure,microsoft}*
|
||||||
sudo cp -f misc/ci/sources.list /etc/apt/sources.list
|
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
# The actual dependencies
|
# The actual dependencies.
|
||||||
sudo apt-get install build-essential pkg-config libx11-dev libxcursor-dev \
|
sudo apt-get install --no-install-recommends build-essential pkg-config libx11-dev \
|
||||||
libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev \
|
libxcursor-dev libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev \
|
||||||
libdbus-1-dev libudev-dev libxi-dev libxrandr-dev yasm xvfb wget unzip \
|
libpulse-dev libdbus-1-dev libudev-dev libxi-dev libxrandr-dev yasm xvfb wget unzip \
|
||||||
libspeechd-dev speech-dispatcher
|
libspeechd-dev speech-dispatcher
|
||||||
|
|
||||||
- name: Free disk space on runner
|
- name: Free disk space on runner
|
||||||
|
17
.github/workflows/server_builds.yml
vendored
17
.github/workflows/server_builds.yml
vendored
@ -12,7 +12,8 @@ concurrency:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-server:
|
build-server:
|
||||||
runs-on: "ubuntu-20.04"
|
# Stay one LTS before latest to increase portability of Linux artifacts.
|
||||||
|
runs-on: "ubuntu-22.04"
|
||||||
name: ${{ matrix.name }}
|
name: ${{ matrix.name }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
@ -36,14 +37,14 @@ jobs:
|
|||||||
- name: Linux dependencies
|
- name: Linux dependencies
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
# Azure repositories are not reliable, we need to prevent azure giving us packages.
|
# Azure repositories are flaky, remove them.
|
||||||
sudo rm -f /etc/apt/sources.list.d/*
|
sudo rm -f /etc/apt/sources.list.d/{azure,microsoft}*
|
||||||
sudo cp -f misc/ci/sources.list /etc/apt/sources.list
|
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
# The actual dependencies
|
# The actual dependencies.
|
||||||
sudo apt-get install build-essential pkg-config libx11-dev libxcursor-dev \
|
sudo apt-get install --no-install-recommends build-essential pkg-config libx11-dev \
|
||||||
libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev \
|
libxcursor-dev libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev \
|
||||||
libdbus-1-dev libudev-dev libxi-dev libxrandr-dev yasm xvfb wget unzip
|
libpulse-dev libdbus-1-dev libudev-dev libxi-dev libxrandr-dev yasm xvfb wget unzip \
|
||||||
|
libspeechd-dev speech-dispatcher
|
||||||
|
|
||||||
- name: Restore Pandemonium build cache
|
- name: Restore Pandemonium build cache
|
||||||
uses: ./.github/actions/pandemonium-cache-restore
|
uses: ./.github/actions/pandemonium-cache-restore
|
||||||
|
@ -714,13 +714,14 @@ PoolByteArray HTTPClient::read_response_body_chunk() {
|
|||||||
chunk_left -= rec;
|
chunk_left -= rec;
|
||||||
|
|
||||||
if (chunk_left == 0) {
|
if (chunk_left == 0) {
|
||||||
if (chunk[chunk.size() - 2] != '\r' || chunk[chunk.size() - 1] != '\n') {
|
const int chunk_size = chunk.size();
|
||||||
|
if (chunk[chunk_size - 2] != '\r' || chunk[chunk_size - 1] != '\n') {
|
||||||
ERR_PRINT("HTTP Invalid chunk terminator (not \\r\\n)");
|
ERR_PRINT("HTTP Invalid chunk terminator (not \\r\\n)");
|
||||||
status = STATUS_CONNECTION_ERROR;
|
status = STATUS_CONNECTION_ERROR;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret.resize(chunk.size() - 2);
|
ret.resize(chunk_size - 2);
|
||||||
PoolByteArray::Write w = ret.write();
|
PoolByteArray::Write w = ret.write();
|
||||||
memcpy(w.ptr(), chunk.ptr(), ret.size());
|
memcpy(w.ptr(), chunk.ptr(), ret.size());
|
||||||
chunk.clear();
|
chunk.clear();
|
||||||
|
@ -106,8 +106,21 @@ Error PacketPeerUDP::get_packet(const uint8_t **r_buffer, int &r_buffer_size) {
|
|||||||
return ERR_UNAVAILABLE;
|
return ERR_UNAVAILABLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Bogus GCC warning here:
|
||||||
|
* In member function 'int RingBuffer<T>::read(T*, int, bool) [with T = unsigned char]',
|
||||||
|
* inlined from 'virtual Error PacketPeerUDP::get_packet(const uint8_t**, int&)' at core/io/packet_peer_udp.cpp:112:9,
|
||||||
|
* inlined from 'virtual Error PacketPeerUDP::get_packet(const uint8_t**, int&)' at core/io/packet_peer_udp.cpp:99:7:
|
||||||
|
* Error: ./core/ring_buffer.h:68:46: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
|
||||||
|
* 68 | p_buf[dst++] = read[pos + i];
|
||||||
|
* | ~~~~~~~~~~~~~^~~~~~~
|
||||||
|
*/
|
||||||
|
#if defined(__GNUC__) && !defined(__clang__)
|
||||||
|
#pragma GCC diagnostic push
|
||||||
|
#pragma GCC diagnostic warning "-Wstringop-overflow=0"
|
||||||
|
#endif
|
||||||
|
|
||||||
uint32_t size = 0;
|
uint32_t size = 0;
|
||||||
uint8_t ipv6[16];
|
uint8_t ipv6[16] = {};
|
||||||
rb.read(ipv6, 16, true);
|
rb.read(ipv6, 16, true);
|
||||||
packet_ip.set_ipv6(ipv6);
|
packet_ip.set_ipv6(ipv6);
|
||||||
rb.read((uint8_t *)&packet_port, 4, true);
|
rb.read((uint8_t *)&packet_port, 4, true);
|
||||||
@ -116,6 +129,11 @@ Error PacketPeerUDP::get_packet(const uint8_t **r_buffer, int &r_buffer_size) {
|
|||||||
--queue_count;
|
--queue_count;
|
||||||
*r_buffer = packet_buffer;
|
*r_buffer = packet_buffer;
|
||||||
r_buffer_size = size;
|
r_buffer_size = size;
|
||||||
|
|
||||||
|
#if defined(__GNUC__) && !defined(__clang__)
|
||||||
|
#pragma GCC diagnostic pop
|
||||||
|
#endif
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -214,12 +214,12 @@ void StreamPeer::put_var(const Variant &p_variant, bool p_full_objects) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
uint8_t StreamPeer::get_u8() {
|
uint8_t StreamPeer::get_u8() {
|
||||||
uint8_t buf[1];
|
uint8_t buf[1] = {};
|
||||||
get_data(buf, 1);
|
get_data(buf, 1);
|
||||||
return buf[0];
|
return buf[0];
|
||||||
}
|
}
|
||||||
int8_t StreamPeer::get_8() {
|
int8_t StreamPeer::get_8() {
|
||||||
uint8_t buf[1];
|
uint8_t buf[1] = {};
|
||||||
get_data(buf, 1);
|
get_data(buf, 1);
|
||||||
return buf[0];
|
return buf[0];
|
||||||
}
|
}
|
||||||
|
@ -59,6 +59,7 @@ import sys
|
|||||||
sys.modules["_elementtree"] = None
|
sys.modules["_elementtree"] = None
|
||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
|
|
||||||
|
|
||||||
## override the parser to get the line number
|
## override the parser to get the line number
|
||||||
class LineNumberingParser(ET.XMLParser):
|
class LineNumberingParser(ET.XMLParser):
|
||||||
def _start(self, *args, **kwargs):
|
def _start(self, *args, **kwargs):
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
All such functions are invoked in a subprocess on Windows to prevent build flakiness.
|
All such functions are invoked in a subprocess on Windows to prevent build flakiness.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import os.path
|
import os.path
|
||||||
import shutil
|
import shutil
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
All such functions are invoked in a subprocess on Windows to prevent build flakiness.
|
All such functions are invoked in a subprocess on Windows to prevent build flakiness.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
from platform_methods import subprocess_main
|
from platform_methods import subprocess_main
|
||||||
from compat import StringIO
|
from compat import StringIO
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
import os
|
import os
|
||||||
from array import array
|
from array import array
|
||||||
|
|
||||||
|
|
||||||
# Generates a C++ file from the specified binary resource file
|
# Generates a C++ file from the specified binary resource file
|
||||||
def generate(in_path, out_path):
|
def generate(in_path, out_path):
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
All such functions are invoked in a subprocess on Windows to prevent build flakiness.
|
All such functions are invoked in a subprocess on Windows to prevent build flakiness.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from platform_methods import subprocess_main
|
from platform_methods import subprocess_main
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
All such functions are invoked in a subprocess on Windows to prevent build flakiness.
|
All such functions are invoked in a subprocess on Windows to prevent build flakiness.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from platform_methods import subprocess_main
|
from platform_methods import subprocess_main
|
||||||
from compat import byte_to_str
|
from compat import byte_to_str
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
All such functions are invoked in a subprocess on Windows to prevent build flakiness.
|
All such functions are invoked in a subprocess on Windows to prevent build flakiness.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import json
|
import json
|
||||||
from platform_methods import subprocess_main
|
from platform_methods import subprocess_main
|
||||||
|
|
||||||
|
@ -1329,7 +1329,8 @@ void TileMap::_set_tile_data(const PoolVector<int> &p_data) {
|
|||||||
for (int i = 0; i < c; i += offset) {
|
for (int i = 0; i < c; i += offset) {
|
||||||
const uint8_t *ptr = (const uint8_t *)&r[i];
|
const uint8_t *ptr = (const uint8_t *)&r[i];
|
||||||
uint8_t local[12];
|
uint8_t local[12];
|
||||||
for (int j = 0; j < ((format == FORMAT_2) ? 12 : 8); j++) {
|
const int buffer_size = (format == FORMAT_2) ? 12 : 8;
|
||||||
|
for (int j = 0; j < buffer_size; j++) {
|
||||||
local[j] = ptr[j];
|
local[j] = ptr[j];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
All such functions are invoked in a subprocess on Windows to prevent build flakiness.
|
All such functions are invoked in a subprocess on Windows to prevent build flakiness.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
from platform_methods import subprocess_main
|
from platform_methods import subprocess_main
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
All such functions are invoked in a subprocess on Windows to prevent build flakiness.
|
All such functions are invoked in a subprocess on Windows to prevent build flakiness.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
from platform_methods import subprocess_main
|
from platform_methods import subprocess_main
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
All such functions are invoked in a subprocess on Windows to prevent build flakiness.
|
All such functions are invoked in a subprocess on Windows to prevent build flakiness.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
from platform_methods import subprocess_main
|
from platform_methods import subprocess_main
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
"""Functions used to generate scu build source files during build time
|
"""Functions used to generate scu build source files during build time
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import glob, os
|
import glob, os
|
||||||
import math
|
import math
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
@ -158,6 +159,7 @@ def find_section_name(sub_folder):
|
|||||||
# which is slow like a normal build, but prevents the naming conflicts.
|
# which is slow like a normal build, but prevents the naming conflicts.
|
||||||
# Ideally in these situations, the source code should be changed to prevent naming conflicts.
|
# Ideally in these situations, the source code should be changed to prevent naming conflicts.
|
||||||
|
|
||||||
|
|
||||||
# "extension" will usually be cpp, but can also be set to c (for e.g. third party libraries that use c)
|
# "extension" will usually be cpp, but can also be set to c (for e.g. third party libraries that use c)
|
||||||
def process_folder(folders, sought_exceptions=[], includes_per_scu=0, extension="cpp"):
|
def process_folder(folders, sought_exceptions=[], includes_per_scu=0, extension="cpp"):
|
||||||
if len(folders) == 0:
|
if len(folders) == 0:
|
||||||
|
Loading…
Reference in New Issue
Block a user