From e9bce254fd1e137b1dcf0b653f7500b3db393f4f Mon Sep 17 00:00:00 2001 From: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com> Date: Tue, 29 Apr 2025 21:29:38 -0400 Subject: [PATCH] ci(windows): pin gcc to 14 (#3831) --- .codeql-prebuild-cpp-Windows.sh | 25 +++++++++++++- .github/workflows/CI.yml | 59 +++++++++++++++++++++++++-------- 2 files changed, 70 insertions(+), 14 deletions(-) diff --git a/.codeql-prebuild-cpp-Windows.sh b/.codeql-prebuild-cpp-Windows.sh index e03f8740..b860c9e8 100644 --- a/.codeql-prebuild-cpp-Windows.sh +++ b/.codeql-prebuild-cpp-Windows.sh @@ -4,6 +4,28 @@ set -e # update pacman pacman --noconfirm -Syu +gcc_version="14.2.0-3" + +broken_deps=( + "mingw-w64-ucrt-x86_64-gcc" + "mingw-w64-ucrt-x86_64-gcc-libs" +) + +tarballs="" +for dep in "${broken_deps[@]}"; do + tarball="${dep}-${gcc_version}-any.pkg.tar.zst" + + # download and install working version + wget https://repo.msys2.org/mingw/ucrt64/${tarball} + + tarballs="${tarballs} ${tarball}" +done + +# install broken dependencies +if [ -n "$tarballs" ]; then + pacman -U --noconfirm ${tarballs} +fi + # install dependencies dependencies=( "git" @@ -20,7 +42,8 @@ dependencies=( "mingw-w64-ucrt-x86_64-opus" "mingw-w64-ucrt-x86_64-toolchain" ) -pacman -S --noconfirm "${dependencies[@]}" + +pacman -Syu --noconfirm --ignore="$(IFS=,; echo "${broken_deps[*]}")" "${dependencies[@]}" # build mkdir -p build diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 22405414..47e472c3 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -825,26 +825,59 @@ jobs: Get-Content -Path monitor_list.txt - name: Setup Dependencies Windows + # if a dependency needs to be pinned, see https://github.com/LizardByte/build-deps/pull/186 uses: msys2/setup-msys2@v2 with: msystem: ucrt64 update: true install: >- - git - mingw-w64-ucrt-x86_64-cmake - mingw-w64-ucrt-x86_64-cppwinrt - mingw-w64-ucrt-x86_64-curl-winssl - mingw-w64-ucrt-x86_64-graphviz - mingw-w64-ucrt-x86_64-MinHook - mingw-w64-ucrt-x86_64-miniupnpc - mingw-w64-ucrt-x86_64-nodejs - mingw-w64-ucrt-x86_64-nsis - mingw-w64-ucrt-x86_64-onevpl - mingw-w64-ucrt-x86_64-openssl - mingw-w64-ucrt-x86_64-opus - mingw-w64-ucrt-x86_64-toolchain wget + - name: Update Windows dependencies + env: + gcc_version: "14.2.0-3" + shell: msys2 {0} + run: | + broken_deps=( + "mingw-w64-ucrt-x86_64-gcc" + "mingw-w64-ucrt-x86_64-gcc-libs" + ) + + tarballs="" + for dep in "${broken_deps[@]}"; do + tarball="${dep}-${gcc_version}-any.pkg.tar.zst" + + # download and install working version + wget https://repo.msys2.org/mingw/ucrt64/${tarball} + + tarballs="${tarballs} ${tarball}" + done + + # install broken dependencies + if [ -n "$tarballs" ]; then + pacman -U --noconfirm ${tarballs} + fi + + # install dependencies + dependencies=( + "git" + "mingw-w64-ucrt-x86_64-cmake" + "mingw-w64-ucrt-x86_64-cppwinrt" + "mingw-w64-ucrt-x86_64-curl-winssl" + "mingw-w64-ucrt-x86_64-graphviz" + "mingw-w64-ucrt-x86_64-MinHook" + "mingw-w64-ucrt-x86_64-miniupnpc" + "mingw-w64-ucrt-x86_64-nlohmann-json" + "mingw-w64-ucrt-x86_64-nodejs" + "mingw-w64-ucrt-x86_64-nsis" + "mingw-w64-ucrt-x86_64-onevpl" + "mingw-w64-ucrt-x86_64-openssl" + "mingw-w64-ucrt-x86_64-opus" + "mingw-w64-ucrt-x86_64-toolchain" + ) + + pacman -Syu --noconfirm --ignore="$(IFS=,; echo "${broken_deps[*]}")" "${dependencies[@]}" + - name: Install Doxygen # GCC compiled doxygen has issues when running graphviz env: