More MSVC debug iterator fixes #243
Workflow file for this run
This file contains 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: Linux | |
on: | |
push: | |
branches: | |
- master | |
- dev | |
paths-ignore: | |
- '**.md' | |
- '**/docs/**' | |
pull_request: | |
branches: | |
- master | |
- dev | |
paths-ignore: | |
- '**.md' | |
- '**/docs/**' | |
workflow_dispatch: | |
env: | |
APT_INSTALL: | | |
sudo apt-get install | |
-yq --no-install-suggests --no-install-recommends | |
--allow-unauthenticated --allow-downgrades --allow-change-held-packages | |
jobs: | |
ubuntu: | |
runs-on: ubuntu-${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ 22.04, 20.04 ] | |
std: [ 17, 20 ] | |
cxx: | |
- g++-13 | |
- g++-12 | |
- g++-11 | |
- g++-10 | |
- g++-9 | |
- g++-8 | |
- g++-7 | |
- clang++-17 | |
- clang++-16 | |
- clang++-15 | |
- clang++-14 | |
- clang++-13 | |
- clang++-12 | |
- clang++-11 | |
- clang++-10 | |
- clang++-9 | |
- clang++-8 | |
- clang++-7 | |
- clang++-6.0 | |
exclude: | |
# gcc 8, gcc 7, and clang 6-8 have lacking C++20 support | |
- cxx: g++-8 | |
std: 20 | |
- cxx: g++-7 | |
std: 20 | |
- cxx: clang++-8 | |
std: 20 | |
- cxx: clang++-7 | |
std: 20 | |
- cxx: clang++-6.0 | |
std: 20 | |
# gcc 8, clang 12, and before aren't available on 22.04 | |
- cxx: g++-8 | |
os: 22.04 | |
- cxx: g++-7 | |
os: 22.04 | |
- cxx: clang++-12 | |
os: 22.04 | |
- cxx: clang++-11 | |
os: 22.04 | |
- cxx: clang++-10 | |
os: 22.04 | |
- cxx: clang++-9 | |
os: 22.04 | |
- cxx: clang++-8 | |
os: 22.04 | |
- cxx: clang++-7 | |
os: 22.04 | |
- cxx: clang++-6.0 | |
os: 22.04 | |
# gcc 12 isn't available on 20.04 (11 and 13 are in ubuntu-toolchain-r) | |
- cxx: g++-12 | |
os: 20.04 | |
# FIXME?: simdutf has problems with clang 6 and 7 (_ktestc_mask64_u8 undefined) | |
- cxx: clang++-7 | |
- cxx: clang++-6.0 | |
# FIXME: Locally unreproducible ICE | |
- cxx: clang++-9 | |
# FIXME: some weird linker issue: undefined reference to range_default_scanner default constructor | |
- cxx: g++-11 | |
std: 20 | |
os: 20.04 | |
# FIXME?: weird incompatibility with libstdc++ 13 inside <chrono> | |
- cxx: clang++-14 | |
std: 20 | |
os: 22.04 | |
- cxx: clang++-13 | |
std: 20 | |
os: 22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: lukka/get-cmake@latest | |
- name: Create Build Environment | |
run: | | |
mkdir ${{ runner.workspace }}/deps | |
mkdir ${{ runner.workspace }}/build | |
sudo locale-gen en_US.UTF-8 | |
sudo locale-gen fi_FI.UTF-8 | |
sudo update-locale | |
sudo locale -a | |
- name: Install dependencies | |
working-directory: ${{ runner.workspace }}/deps | |
env: | |
CXX: ${{ matrix.cxx }} | |
OS: ${{ matrix.os }} | |
run: | | |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test | |
sudo apt-get --allow-unauthenticated -yq update | |
if [[ "${CXX}" == "g++-13" ]]; then | |
${APT_INSTALL} g++-13 | |
fi | |
if [[ "${CXX}" == "g++-12" ]]; then | |
${APT_INSTALL} g++-12 | |
fi | |
if [[ "${CXX}" == "g++-11" ]]; then | |
${APT_INSTALL} g++-11 | |
fi | |
if [[ "${CXX}" == "g++-10" ]]; then | |
${APT_INSTALL} g++-10 | |
fi | |
if [[ "${CXX}" == "g++-9" ]]; then | |
${APT_INSTALL} g++-9 | |
fi | |
if [[ "${CXX}" == "g++-8" ]]; then | |
${APT_INSTALL} g++-8 | |
fi | |
if [[ "${CXX}" == "g++-7" ]]; then | |
${APT_INSTALL} g++-7 | |
fi | |
wget https://apt.llvm.org/llvm.sh | |
chmod +x llvm.sh | |
if [[ "${CXX}" == "clang++-18" ]]; then | |
sudo ./llvm.sh 18 | |
fi | |
if [[ "${CXX}" == "clang++-17" ]]; then | |
sudo ./llvm.sh 17 | |
fi | |
if [[ "${CXX}" == "clang++-16" ]]; then | |
sudo ./llvm.sh 16 | |
fi | |
if [[ "${CXX}" == "clang++-15" ]]; then | |
sudo ./llvm.sh 15 | |
fi | |
if [[ "${CXX}" == "clang++-14" ]]; then | |
sudo ./llvm.sh 14 | |
fi | |
if [[ "${CXX}" == "clang++-13" ]]; then | |
sudo ./llvm.sh 13 | |
fi | |
if [[ "${CXX}" == "clang++-12" ]]; then | |
sudo ./llvm.sh 12 | |
fi | |
if [[ "${CXX}" == "clang++-11" ]]; then | |
sudo ./llvm.sh 11 | |
fi | |
if [[ "${CXX}" == "clang++-10" ]]; then | |
sudo ./llvm.sh 10 | |
fi | |
if [[ "${CXX}" == "clang++-9" ]]; then | |
sudo ./llvm.sh 9 | |
fi | |
if [[ "${CXX}" == "clang++-8" ]]; then | |
${APT_INSTALL} clang-8 | |
fi | |
if [[ "${CXX}" == "clang++-7" ]]; then | |
${APT_INSTALL} clang-7 | |
fi | |
if [[ "${CXX}" == "clang++-6.0" ]]; then | |
${APT_INSTALL} clang-6.0 | |
fi | |
- name: Run CMake | |
working-directory: ${{ runner.workspace }}/build | |
env: | |
CXX: ${{ matrix.cxx }} | |
run: | | |
cmake -G Ninja -DSCN_CI=ON -DSCN_TESTS_LOCALIZED=ON \ | |
-DCMAKE_CXX_STANDARD=${{ matrix.std }} \ | |
$GITHUB_WORKSPACE | |
- name: Build | |
working-directory: ${{ runner.workspace }}/build | |
run: cmake --build . -- -k 0 | |
- name: Test | |
working-directory: ${{ runner.workspace }}/build | |
run: ctest --output-on-failure | |
libcxx: | |
runs-on: ubuntu-${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ 22.04, 20.04 ] | |
std: [ 17, 20 ] | |
exclude: | |
# seems to be buggy | |
- os: 20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: lukka/get-cmake@latest | |
- name: Create Build Environment | |
run: | | |
mkdir ${{ runner.workspace }}/build | |
sudo locale-gen en_US.UTF-8 | |
sudo locale-gen fi_FI.UTF-8 | |
sudo update-locale | |
sudo locale -a | |
- name: Run CMake | |
working-directory: ${{ runner.workspace }}/build | |
env: | |
CC: clang | |
CXX: clang++ | |
run: | | |
cmake -G Ninja -DSCN_CI=ON -DSCN_TESTS_LOCALIZED=ON \ | |
-DCMAKE_CXX_STANDARD=${{ matrix.std }} \ | |
-DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_EXE_LINKER_FLAGS="-stdlib=libc++ -lc++abi" \ | |
$GITHUB_WORKSPACE | |
- name: Build | |
working-directory: ${{ runner.workspace }}/build | |
run: cmake --build . -- -k 0 | |
- name: Test | |
working-directory: ${{ runner.workspace }}/build | |
run: ctest --output-on-failure | |
alpine: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Start docker | |
run: | | |
docker run -w /src -dit --name alpine -v $PWD:/src alpine:3.18 | |
echo 'docker exec alpine "$@";' > alpine-run.sh | |
chmod +x alpine-run.sh | |
- name: Install dependencies | |
run: | | |
./alpine-run.sh apk update | |
./alpine-run.sh apk add build-base cmake g++ linux-headers git bash | |
- name: Run CMake | |
run: | | |
./alpine-run.sh cmake -S /src -B build -DSCN_CI=ON | |
- name: Build | |
run: | | |
./alpine-run.sh cmake --build build --parallel -- -k | |
- name: Test | |
run: | | |
./alpine-run.sh bash -c "cd build && ctest --output-on-failure" | |
asan-and-ubsan: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
std: [ 17, 20 ] | |
cxx: [ clang++-16 ] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: lukka/get-cmake@latest | |
- name: Create Build Environment | |
run: | | |
sudo locale-gen en_US.UTF-8 | |
sudo locale-gen fi_FI.UTF-8 | |
sudo update-locale | |
sudo locale -a | |
wget https://apt.llvm.org/llvm.sh | |
chmod +x llvm.sh | |
sudo ./llvm.sh 16 | |
mkdir ${{ runner.workspace }}/build | |
- name: Run CMake | |
working-directory: ${{ runner.workspace }}/build | |
run: | | |
cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug \ | |
-DCMAKE_CXX_COMPILER=${{ matrix.cxx }} -DCMAKE_CXX_STANDARD=${{ matrix.std }} \ | |
-DSCN_CI=ON -DSCN_TESTS_LOCALIZED=ON \ | |
-DSCN_USE_ASAN=ON -DSCN_USE_UBSAN=ON \ | |
$GITHUB_WORKSPACE | |
- name: Build | |
working-directory: ${{ runner.workspace }}/build | |
run: | | |
cmake --build . -- -k 0 | |
- name: Test | |
working-directory: ${{ runner.workspace }}/build | |
run: | | |
ctest --output-on-failure |