Skip to content

Commit

Permalink
ci: additional targets and comments
Browse files Browse the repository at this point in the history
  • Loading branch information
mochaaP committed Jan 2, 2025
1 parent eab36f6 commit 25c2d7c
Showing 1 changed file with 66 additions and 39 deletions.
105 changes: 66 additions & 39 deletions .github/workflows/meson.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,73 +16,93 @@ jobs:
- release
mode:
- name: default
args: -Dtests=enabled
extra_envs: {}

# Alternative compiler setups
- name: gcc
args: -Dtests=enabled
extra_envs:
CC: gcc
CXX: g++
- name: clang
args: -Dtests=enabled
extra_envs:
CC: clang
CXX: clang++

- name: sanitize
args: >-
"-Db_sanitize=address,undefined"
extra_envs:
CC: gcc
CXX: g++
# For Visual Studio
extra_envs: {}

# This is for MSVC, which only supports AddressSanitizer.
# https://learn.microsoft.com/en-us/cpp/sanitizers/
- name: sanitize+asanonly
args: -Db_sanitize=address
extra_envs:
ASAN_OPTIONS: report_globals=0:halt_on_error=1:abort_on_error=1:print_summary=1

- name: clang+sanitize
args: >-
"-Db_sanitize=address,undefined"
extra_envs:
CC: clang
CXX: clang++
#- name: clang-cl+sanitize
# args: >-
# "-Db_sanitize=address,undefined"
# extra_envs:
# CC: clang-cl
# CXX: clang-cl
#- name: clang+msan
# args: -Db_sanitize=memory
# extra_envs:
# CC: clang
# CXX: clang++
#- name: clang-cl+msan
# args: -Db_sanitize=memory
# extra_envs:
# CC: clang-cl
# CXX: clang-cl
- name: clang+msan
args: -Db_sanitize=memory
extra_envs:
CC: clang
CXX: clang++

# default clang on GitHub hosted runners is from MSYS2.
# Use Visual Studio supplied clang-cl instead.
- name: clang-cl+sanitize
args: >-
"-Db_sanitize=address,undefined"
extra_envs:
CC: clang-cl
CXX: clang-cl
- name: clang-cl+msan
args: -Db_sanitize=memory
extra_envs:
CC: clang-cl
CXX: clang-cl
platform:
- ubuntu-22.04
- windows-2022
#- macos-latest
- macos-latest

exclude:
# clang-cl
# clang-cl only makes sense on windows.
- platform: ubuntu-22.04
mode:
name: clang-cl+sanitize
- platform: macos-latest
mode:
name: clang-cl+sanitize
- platform: windows-2022
mode:
name: clang+sanitize
- platform: windows-2022
mode:
name: sanitize+asanonly
flavor: release
- platform: ubuntu-22.04
mode:
name: clang-cl+msan
- platform: macos-latest
mode:
name: clang-cl+msan

# Use clang-cl instead of MSYS2 clang.
#
# we already tested clang+sanitize on linux,
# if this doesn't work, it should be an issue for MSYS2 team to consider.
- platform: windows-2022
mode:
name: clang
- platform: windows-2022
mode:
name: clang+sanitize
- platform: windows-2022
mode:
name: clang+msan
# msvc

# MSVC-only sanitizers
- platform: ubuntu-22.04
mode:
name: sanitize+asanonly
Expand All @@ -92,24 +112,31 @@ jobs:
- platform: windows-2022
mode:
name: sanitize
# default is clang

# clang is the default on macos
- platform: macos-latest
mode:
name: clang

# gcc is the default on linux
- platform: ubuntu-22.04
mode:
name: gcc

# only run sanitizer tests on linux
#
# gcc/clang's codegen shouldn't massively change across platforms,
# and linux supports most of the sanitizers.
- platform: macos-latest
mode:
name: clang+sanitize
# msan unsupported
- platform: macos-latest
mode:
# macos does not support msan
name: clang+msan
- platform: macos-latest
mode:
name: sanitize
flavor: release
- platform: macos-latest
mode:
name: clang+msan
flavor: release


steps:
- name: Setup meson
run: |
Expand Down

0 comments on commit 25c2d7c

Please sign in to comment.