node_crunch2: keep c++23 #24706
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: MingW (Msys2) | |
| on: | |
| pull_request: | |
| branches: | |
| - dev | |
| jobs: | |
| build: | |
| runs-on: windows-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - { msystem: MINGW64, kind: static, arch: x86_64, prefix: /mingw64 } | |
| - { msystem: MINGW64, kind: shared, arch: x86_64, prefix: /mingw64 } | |
| - { msystem: MINGW32, kind: static, arch: i686, prefix: /mingw32 } | |
| - { msystem: MINGW32, kind: shared, arch: i686, prefix: /mingw32 } | |
| concurrency: | |
| group: ${{ github.ref }}-${{ github.base_ref }}-${{ github.head_ref }}-MSYS2_MINGW-${{ matrix.msystem }}-${{ matrix.kind }}-${{ matrix.arch }} | |
| cancel-in-progress: true | |
| steps: | |
| - uses: actions/checkout@v6.0.2 | |
| with: | |
| fetch-depth: 0 | |
| - uses: msys2/setup-msys2@v2 | |
| with: | |
| msystem: ${{ matrix.msystem }} | |
| update: true | |
| - name: Install build dependencies | |
| shell: msys2 {0} | |
| run: | | |
| set -euo pipefail | |
| pacman -S --noconfirm --needed \ | |
| git base-devel unzip p7zip \ | |
| mingw-w64-${{ matrix.arch }}-toolchain | |
| if [ "${{ matrix.arch }}" == "x86_64" ]; then | |
| pacman -S --noconfirm --needed mingw-w64-x86_64-gcc-fortran | |
| fi | |
| # Downgrade i686 GCC packages to 15.2.0-14, the last revision for which | |
| # MSYS2 still publishes a matching gcc-fortran build. The toolchain | |
| # group (binutils, crt, headers, winpthreads, etc.) installed above | |
| # stays at its current version and supplies the assembler, linker, | |
| # CRT, and Windows headers; --nodeps lets us replace just gcc, gcc-libs, | |
| # gcc-libgfortran, and gcc-fortran without pacman objecting to the | |
| # version skew. Stopgap until we drop MINGW32 or migrate to WinLibs. | |
| - name: Pin i686 GCC + Fortran to 15.2.0-14 | |
| if: matrix.arch == 'i686' | |
| shell: msys2 {0} | |
| run: | | |
| set -euo pipefail | |
| BASE="https://repo.msys2.org/mingw/mingw32" | |
| pacman -U --noconfirm --nodeps --nodeps \ | |
| "$BASE/mingw-w64-i686-gcc-15.2.0-14-any.pkg.tar.zst" \ | |
| "$BASE/mingw-w64-i686-gcc-libs-15.2.0-14-any.pkg.tar.zst" \ | |
| "$BASE/mingw-w64-i686-gcc-libgfortran-15.2.0-14-any.pkg.tar.zst" \ | |
| "$BASE/mingw-w64-i686-gcc-fortran-15.2.0-14-any.pkg.tar.zst" | |
| - name: Prepare | |
| shell: msys2 {0} | |
| run: | | |
| gcc --version | |
| gfortran --version | |
| git clone https://github.com/xmake-io/xmake.git --recurse-submodules -b master | |
| cd xmake | |
| ./configure | |
| make -j4 | |
| make install PREFIX=${{ matrix.prefix }} | |
| xmake --version | |
| cd .. | |
| git reset --hard HEAD | |
| git clean -fdx | |
| - name: Tests | |
| shell: msys2 {0} | |
| run: | | |
| if [ "${{ matrix.arch }}" == "x86_64" ]; then | |
| xmake l ./scripts/test.lua -vD -p mingw -a x86_64 -k ${{ matrix.kind }} | |
| else | |
| xmake l ./scripts/test.lua -vD -p mingw -a i386 -k ${{ matrix.kind }} | |
| fi |