summaryrefslogtreecommitdiff
path: root/.github/workflows/build-and-test.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/build-and-test.yml')
-rw-r--r--.github/workflows/build-and-test.yml36
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 \