Skip to content

Add null_safe_string_view(const char*, std::size_t) #78

Add null_safe_string_view(const char*, std::size_t)

Add null_safe_string_view(const char*, std::size_t) #78

Workflow file for this run

name: Test on Linux/MacOS
on:
pull_request:
branches: [ main ]
paths:
- 'include/**'
- 'src/**'
- 'tests/**'
- 'tools/**'
- 'meson.build'
workflow_dispatch:
jobs:
build-and-asan:
strategy:
matrix:
platform: [ ubuntu-latest, macos-latest ]
runs-on: ${{ matrix.platform }}
steps:
- name: Intro
run: echo "Branch ${{ github.ref }} on repository ${{ github.repository }}"
- name: Check out repository code
uses: actions/checkout@v4
- name: Install Ninja
shell: bash
run: |
if [[ "${{ matrix.platform }}" == ubuntu-latest ]]; then
sudo apt-get install ninja-build
elif [[ "${{ matrix.platform }}" == macos-latest ]]; then
brew install ninja
else
echo Do not know how to install Ninja on platform ${{ inputs.platform }}
false
fi
- name: Retrieve Meson from cache
id: cache-meson
uses: actions/cache@v4
with:
path: meson-1.3.1
key: meson-1.3.1
- name: Download Meson
if: steps.cache-meson.outputs.cache-hit != 'true'
run: |
wget -q https://github.com/mesonbuild/meson/releases/download/1.3.1/meson-1.3.1.tar.gz
tar -xzf meson-1.3.1.tar.gz
rm meson-1.3.1.tar.gz
- name: Create symbolic link for Meson
run: |
ln -s meson-1.3.1/meson.py .
ls -la
- name: Configure build directories
run: |
./meson.py setup --buildtype=release build.release
./meson.py setup --buildtype=debug build.asan -Db_sanitize=address
- name: Build and run ASAN tests
run: ./meson.py test -C build.asan
- name: Build exampes
run: ninja -C build.asan examples/thread_pool_example examples/trim_example
- name: Build and run release tests
run: ./meson.py test -C build.release
- uses: actions/upload-artifact@v4
if: ${{ always() }}
with:
name: build-dirs-${{ matrix.platform }}
path: |
build.release/
build.asan/