diff options
Diffstat (limited to '.github/workflows/build-and-test.yml')
-rw-r--r-- | .github/workflows/build-and-test.yml | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 293c9ca..168fa2b 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -17,8 +17,8 @@ jobs: include: - name: Native Linux cmake_args: >- - -DCMAKE_C_COMPILER=clang-13 - -DCMAKE_CXX_COMPILER=clang++-13 + -DCMAKE_C_COMPILER=clang-15 + -DCMAKE_CXX_COMPILER=clang++-15 cflags: >- -fsanitize=address,undefined,leak -fno-sanitize-recover=all @@ -34,16 +34,19 @@ jobs: -DMINGW=ON runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v2.4.0 + - uses: actions/checkout@v3.0.2 - name: Add Clang/LLVM repositories (Non-MinGW) if: "${{ ! contains(matrix.cmake_args, 'mingw') }}" run: |- + set -x + source /etc/os-release wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - - sudo add-apt-repository 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main' + sudo add-apt-repository "deb http://apt.llvm.org/${UBUNTU_CODENAME}/ llvm-toolchain-${UBUNTU_CODENAME}-15 main" - name: Install build dependencies run: |- + set -x sudo apt-get update sudo apt-get install --yes --no-install-recommends -V \ cmake \ @@ -56,20 +59,35 @@ jobs: - name: Install build dependencies (MinGW) if: "${{ contains(matrix.cmake_args, 'mingw') }}" run: |- + set -x -u -o pipefail + source /etc/os-release + + # Get rid of packages installed from ppa:ondrej/php so that we will be able to install wine32:i386 without conflicts + # (see issue https://github.com/actions/virtual-environments/issues/4589) + # In detail we: + # 1. Remove all packages that ppa:ondrej/php has but plain Ubuntu doesn't, e.g. everything PHP + # 2. Revert (remaining) packages that ppa:ondrej/php and plain Ubuntu share, back to the plain Ubuntu version + # 3. Assert that no packages from ppa:ondrej/php are left installed + dpkg -l | grep '^ii' | fgrep deb.sury.org | awk '{print $2}' | grep '^php' \ + | xargs -r -t sudo apt-get remove --yes libpcre2-posix3 libzip4 + dpkg -l | grep '^ii' | fgrep deb.sury.org | awk '{print $2}' | sed "s,\$,/${UBUNTU_CODENAME}," \ + | xargs -r -t sudo apt-get install --yes --no-install-recommends --allow-downgrades -V + ! dpkg -l | grep '^ii' | fgrep deb.sury.org + + # Install 32bit Wine sudo dpkg --add-architecture i386 # for wine32 - sudo apt-add-repository ppa:ondrej/php -y # due to libwine:i386 conflicts sudo apt-get update # again, due to new architecture sudo apt-get install --yes --no-install-recommends -V \ mingw-w64 \ wine-stable \ - wine32 + wine32:i386 - name: Install build dependencies (Non-MinGW) if: "${{ ! contains(matrix.cmake_args, 'mingw') }}" run: |- sudo apt-get install --yes --no-install-recommends -V \ - clang-13 \ - llvm-13 + clang-15 \ + llvm-15 - name: Build, test and install run: |- @@ -165,7 +183,7 @@ jobs: fi popd - git fetch --tags --unshallow origin # for "git describe" in make-distcheck.sh + git fetch --force --tags --unshallow origin # for "git describe" in make-distcheck.sh GTEST_PREFIX="${GTEST_PREFIX}" \ ./make-distcheck.sh \ |