1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00: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.

(cherry picked from commit fd9bd108af)
This commit is contained in:
Rémi Verschelde
2024-11-06 13:57:25 +01:00
parent 52e22c514b
commit 292b2dbce7
20 changed files with 62 additions and 45 deletions

View File

@@ -14,24 +14,17 @@ 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: Set up Java 17
- 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 11
uses: actions/setup-java@v4 uses: actions/setup-java@v4
with: with:
distribution: temurin distribution: temurin
java-version: 11 java-version: 17
- name: Setup Godot build cache - name: Setup Godot build cache
uses: ./.github/actions/godot-cache uses: ./.github/actions/godot-cache

View File

@@ -16,7 +16,7 @@ concurrency:
jobs: jobs:
javascript-template: javascript-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:

View File

@@ -14,7 +14,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
@@ -54,9 +55,8 @@ 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 build-essential pkg-config libx11-dev libxcursor-dev \

View File

@@ -14,7 +14,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,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
- name: Setup Godot build cache - name: Setup Godot build cache
uses: ./.github/actions/godot-cache uses: ./.github/actions/godot-cache

View File

@@ -9,26 +9,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-15 main"
sudo apt-get update
- name: Install dependencies - name: Install dependencies
run: | run: |
sudo apt-get install -qq dos2unix clang-format-15 libxml2-utils python3-pip moreutils # Azure repositories are flaky, remove them.
sudo rm -f /etc/apt/sources.list.d/{azure,microsoft}*
sudo apt-get update
sudo apt-get install -qq dos2unix libxml2-utils python3-pip moreutils
sudo update-alternatives --remove-all clang-format || true sudo update-alternatives --remove-all clang-format || true
sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-15 100 sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-16 100
sudo pip3 install black==22.3.0 pygments sudo pip3 install black==24.10.0 pygments
- name: File formatting checks (file_format.sh) - name: File formatting checks (file_format.sh)
run: | run: |

View File

@@ -713,15 +713,16 @@ 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(), chunk.size() - 2); memcpy(w.ptr(), chunk.ptr(), chunk_size - 2);
chunk.clear(); chunk.clear();
} }

View File

@@ -105,8 +105,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);
@@ -115,6 +128,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;
} }

View File

@@ -213,12 +213,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];
} }

View File

@@ -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):

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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):

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1226,7 +1226,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];
} }

View File

@@ -208,9 +208,9 @@ private:
struct Effect { struct Effect {
Ref<AudioEffect> effect; Ref<AudioEffect> effect;
bool enabled; bool enabled = false;
#ifdef DEBUG_ENABLED #ifdef DEBUG_ENABLED
uint64_t prof_time; uint64_t prof_time = 0;
#endif #endif
}; };