mirror of
https://github.com/boostorg/regex.git
synced 2026-01-20 17:12:09 +00:00
445 lines
18 KiB
YAML
445 lines
18 KiB
YAML
# Copyright 2020 Evan Miller
|
|
# Copyright 2020 Matt Borland
|
|
# Distributed under the Boost Software License, Version 1.0.
|
|
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
|
|
|
|
name: CI
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- develop
|
|
- feature/**
|
|
- cve-*
|
|
pull_request:
|
|
release:
|
|
types: [published, created, edited]
|
|
|
|
env:
|
|
UBSAN_OPTIONS: print_stacktrace=1
|
|
|
|
jobs:
|
|
ubuntu-jammy:
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
compiler: [ g++-11, g++-12, g++-13 ]
|
|
standard: [ c++11, c++14, c++17, c++2a ]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: '0'
|
|
- uses: mstachniuk/ci-skip@v1
|
|
with:
|
|
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]'
|
|
commit-filter-separator: ';'
|
|
fail-fast: true
|
|
- name: Set TOOLSET
|
|
run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
|
|
- name: Add repository
|
|
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
|
|
- name: Install packages
|
|
run: sudo apt install g++-11 g++-12 g++-13
|
|
- name: Checkout main boost
|
|
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
|
|
- name: Update tools/boostdep
|
|
run: git submodule update --init tools/boostdep
|
|
working-directory: ../boost-root
|
|
- name: Copy files
|
|
run: cp -r $GITHUB_WORKSPACE/* libs/regex
|
|
working-directory: ../boost-root
|
|
- name: Install deps
|
|
run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex
|
|
working-directory: ../boost-root
|
|
- name: Bootstrap
|
|
run: ./bootstrap.sh
|
|
working-directory: ../boost-root
|
|
- name: Generate headers
|
|
run: ./b2 headers
|
|
working-directory: ../boost-root
|
|
- name: Generate user config
|
|
run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} : <cxxflags>-std=${{ matrix.standard }} ;" > ~/user-config.jam'
|
|
working-directory: ../boost-root
|
|
- name: Config info
|
|
run: ../../../b2 print_config_info toolset=$TOOLSET
|
|
working-directory: ../boost-root/libs/config/test
|
|
- name: Test
|
|
run: ../../../b2 toolset=$TOOLSET variant=debug,release ${{ startsWith(matrix.compiler, 'g++-13') && 'address-sanitizer=norecover undefined-sanitizer=norecover' || '' }}
|
|
working-directory: ../boost-root/libs/regex/test
|
|
ubuntu-jammy-standalone:
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
compiler: [ g++ ]
|
|
standard: [ c++11, c++14, c++17, c++2a ]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: '0'
|
|
- uses: mstachniuk/ci-skip@v1
|
|
with:
|
|
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]'
|
|
commit-filter-separator: ';'
|
|
fail-fast: true
|
|
- name: Set TOOLSET
|
|
run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
|
|
- name: Add repository
|
|
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
|
|
- name: Install packages
|
|
run: sudo apt install libicu-dev
|
|
- name: Test
|
|
run: ${{ matrix.compiler }} -std=${{ matrix.standard }} -I../../include *.cpp ../../src/*.cpp -o regress && ./regress
|
|
working-directory: ./test/regress
|
|
ubuntu-jammy-clang:
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
compiler: [ clang++-15 ]
|
|
standard: [ c++11, c++14, c++17 ]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: '0'
|
|
- uses: mstachniuk/ci-skip@v1
|
|
with:
|
|
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]'
|
|
commit-filter-separator: ';'
|
|
fail-fast: true
|
|
- name: Set TOOLSET
|
|
run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
|
|
- name: Add repository
|
|
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
|
|
- name: Install packages
|
|
run: sudo apt install clang-15
|
|
- name: Checkout main boost
|
|
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
|
|
- name: Update tools/boostdep
|
|
run: git submodule update --init tools/boostdep
|
|
working-directory: ../boost-root
|
|
- name: Copy files
|
|
run: cp -r $GITHUB_WORKSPACE/* libs/regex
|
|
working-directory: ../boost-root
|
|
- name: Install deps
|
|
run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex
|
|
working-directory: ../boost-root
|
|
- name: Bootstrap
|
|
run: ./bootstrap.sh
|
|
working-directory: ../boost-root
|
|
- name: Generate headers
|
|
run: ./b2 headers
|
|
working-directory: ../boost-root
|
|
- name: Generate user config
|
|
run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} : <cxxflags>-std=${{ matrix.standard }} ;" > ~/user-config.jam'
|
|
working-directory: ../boost-root
|
|
- name: Config info
|
|
run: ../../../b2 print_config_info toolset=$TOOLSET
|
|
working-directory: ../boost-root/libs/config/test
|
|
- name: Test
|
|
run: ../../../b2 toolset=$TOOLSET define=CI_SUPPRESS_KNOWN_ISSUES define=SLOW_COMPILER
|
|
working-directory: ../boost-root/libs/regex/test
|
|
ubuntu-jammy-clang-18-modules:
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: '0'
|
|
- uses: mstachniuk/ci-skip@v1
|
|
with:
|
|
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]'
|
|
commit-filter-separator: ';'
|
|
fail-fast: true
|
|
- name: Grab install script
|
|
run: wget https://apt.llvm.org/llvm.sh && chmod u+x llvm.sh
|
|
- name: Install clang 18 packages
|
|
run: sudo ./llvm.sh 18 && clang++-18 --version
|
|
- name: Checkout main boost
|
|
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
|
|
- name: Update tools/boostdep
|
|
run: git submodule update --init tools/boostdep
|
|
working-directory: ../boost-root
|
|
- name: Copy files
|
|
run: cp -r $GITHUB_WORKSPACE/* libs/regex
|
|
working-directory: ../boost-root
|
|
- name: Install deps
|
|
run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex
|
|
working-directory: ../boost-root
|
|
- name: Bootstrap
|
|
run: ./bootstrap.sh
|
|
working-directory: ../boost-root
|
|
- name: Generate headers
|
|
run: ./b2 headers
|
|
working-directory: ../boost-root
|
|
- name: Test
|
|
run: CXX=clang++-18 LIBRARIES="-licuuc -licudata -licui18n" ./test_clang.sh
|
|
working-directory: ../boost-root/libs/regex/test/module
|
|
ubuntu-noble-clang:
|
|
runs-on: ubuntu-24.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
compiler: [ clang++-16, clang++-17, clang++-18 ]
|
|
standard: [ c++11, c++14, c++17, c++20 ]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: '0'
|
|
- uses: mstachniuk/ci-skip@v1
|
|
with:
|
|
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]'
|
|
commit-filter-separator: ';'
|
|
fail-fast: true
|
|
- name: Set TOOLSET
|
|
run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
|
|
- name: Add repository
|
|
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
|
|
- name: Install packages
|
|
run: sudo apt install clang-16 clang-17 clang-18
|
|
- name: Checkout main boost
|
|
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
|
|
- name: Update tools/boostdep
|
|
run: git submodule update --init tools/boostdep
|
|
working-directory: ../boost-root
|
|
- name: Copy files
|
|
run: cp -r $GITHUB_WORKSPACE/* libs/regex
|
|
working-directory: ../boost-root
|
|
- name: Install deps
|
|
run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex
|
|
working-directory: ../boost-root
|
|
- name: Bootstrap
|
|
run: ./bootstrap.sh
|
|
working-directory: ../boost-root
|
|
- name: Generate headers
|
|
run: ./b2 headers
|
|
working-directory: ../boost-root
|
|
- name: Generate user config
|
|
run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} : <cxxflags>-std=${{ matrix.standard }} ;" > ~/user-config.jam'
|
|
working-directory: ../boost-root
|
|
- name: Config info
|
|
run: ../../../b2 print_config_info toolset=$TOOLSET
|
|
working-directory: ../boost-root/libs/config/test
|
|
- name: Test
|
|
run: ../../../b2 toolset=$TOOLSET define=CI_SUPPRESS_KNOWN_ISSUES define=SLOW_COMPILER variant=debug,release ${{ startsWith(matrix.compiler, 'clang++-18') && 'address-sanitizer=norecover undefined-sanitizer=norecover' || '' }}
|
|
working-directory: ../boost-root/libs/regex/test
|
|
macos:
|
|
runs-on: macos-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
toolset: [ clang ]
|
|
standard: [ 11, 14, 17, 2a ]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: '0'
|
|
- uses: mstachniuk/ci-skip@v1
|
|
with:
|
|
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[linux];[Linux];[LINUX]'
|
|
commit-filter-separator: ';'
|
|
fail-fast: true
|
|
- name: Checkout main boost
|
|
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
|
|
- name: Update tools/boostdep
|
|
run: git submodule update --init tools/boostdep
|
|
working-directory: ../boost-root
|
|
- name: Copy files
|
|
run: cp -r $GITHUB_WORKSPACE/* libs/regex
|
|
working-directory: ../boost-root
|
|
- name: Install deps
|
|
run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex
|
|
working-directory: ../boost-root
|
|
- name: Bootstrap
|
|
run: ./bootstrap.sh
|
|
working-directory: ../boost-root
|
|
- name: Generate headers
|
|
run: ./b2 headers
|
|
working-directory: ../boost-root
|
|
- name: Config info install
|
|
run: ../../../b2 config_info_travis_install toolset=${{ matrix.toolset }} cxxstd=${{ matrix.standard }}
|
|
working-directory: ../boost-root/libs/config/test
|
|
- name: Config info
|
|
run: ./config_info_travis
|
|
working-directory: ../boost-root/libs/config/test
|
|
- name: Test
|
|
run: ../../../b2 toolset=${{ matrix.toolset }} cxxstd=${{ matrix.standard }}
|
|
working-directory: ../boost-root/libs/regex/test
|
|
windows_gcc:
|
|
runs-on: windows-latest
|
|
defaults:
|
|
run:
|
|
shell: cmd
|
|
env:
|
|
ARGS: toolset=${{ matrix.toolset }} address-model=64 cxxstd=${{ matrix.standard }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
toolset: [ gcc ]
|
|
standard: [ 11, 14, 17, 2a ]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: '0'
|
|
- uses: mstachniuk/ci-skip@v1
|
|
with:
|
|
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX]'
|
|
commit-filter-separator: ';'
|
|
fail-fast: true
|
|
- name: Checkout main boost
|
|
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
|
|
- name: Update tools/boostdep
|
|
run: git submodule update --init tools/boostdep
|
|
working-directory: ../boost-root
|
|
- name: Copy files
|
|
run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\regex
|
|
working-directory: ../boost-root
|
|
- name: Install deps
|
|
run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex
|
|
working-directory: ../boost-root
|
|
- name: Bootstrap
|
|
run: bootstrap
|
|
working-directory: ../boost-root
|
|
- name: Generate headers
|
|
run: b2 headers
|
|
working-directory: ../boost-root
|
|
- name: Config info install
|
|
run: ..\..\..\b2 config_info_travis_install %ARGS%
|
|
working-directory: ../boost-root/libs/config/test
|
|
- name: Config info
|
|
run: config_info_travis
|
|
working-directory: ../boost-root/libs/config/test
|
|
- name: Test
|
|
run: ..\..\..\b2 --hash %ARGS%
|
|
working-directory: ../boost-root/libs/regex/test
|
|
windows_msvc_14_3:
|
|
runs-on: windows-2025
|
|
defaults:
|
|
run:
|
|
shell: cmd
|
|
env:
|
|
ARGS: toolset=${{ matrix.toolset }} address-model=64 cxxstd=${{ matrix.standard }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
toolset: [ msvc-14.3 ]
|
|
standard: [ 14, 17, 20, latest ]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: '0'
|
|
- uses: mstachniuk/ci-skip@v1
|
|
with:
|
|
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX]'
|
|
commit-filter-separator: ';'
|
|
fail-fast: true
|
|
- uses: TheMrMilchmann/setup-msvc-dev@v3
|
|
with:
|
|
arch: x64
|
|
- name: Checkout main boost
|
|
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
|
|
- name: Update tools/boostdep
|
|
run: git submodule update --init tools/boostdep
|
|
working-directory: ../boost-root
|
|
- name: Copy files
|
|
run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\regex
|
|
working-directory: ../boost-root
|
|
- name: Install deps
|
|
run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex
|
|
working-directory: ../boost-root
|
|
- name: Bootstrap
|
|
run: bootstrap
|
|
working-directory: ../boost-root
|
|
- name: Generate headers
|
|
run: b2 headers
|
|
working-directory: ../boost-root
|
|
- name: Config info install
|
|
run: ..\..\..\b2 config_info_travis_install %ARGS%
|
|
working-directory: ../boost-root/libs/config/test
|
|
- name: Config info
|
|
run: config_info_travis
|
|
working-directory: ../boost-root/libs/config/test
|
|
- name: Test
|
|
run: ..\..\..\b2 --hash %ARGS%
|
|
working-directory: ../boost-root/libs/regex/test
|
|
- name: Module Test
|
|
run: msvc_test.bat
|
|
working-directory: ../boost-root/libs/regex/test/module
|
|
ubuntu-cmake-install:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: '0'
|
|
- name: Checkout main boost
|
|
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
|
|
- name: Update tools/boostdep
|
|
run: git submodule update --init tools/boostdep
|
|
working-directory: ../boost-root
|
|
- name: Copy files
|
|
run: cp -r $GITHUB_WORKSPACE/* libs/regex
|
|
working-directory: ../boost-root
|
|
- name: Install deps
|
|
run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex
|
|
working-directory: ../boost-root
|
|
- name: Bootstrap
|
|
run: ./bootstrap.sh
|
|
working-directory: ../boost-root
|
|
- name: CMake Test
|
|
working-directory: ../boost-root
|
|
run: |
|
|
mkdir __build__ && cd __build__
|
|
cmake -DBOOST_ENABLE_CMAKE=1 -DBoost_VERBOSE=1 -DBOOST_INCLUDE_LIBRARIES="regex;core" -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX=~/.local ..
|
|
cmake --build . --target install
|
|
cd ../libs/regex/test/cmake_install_test && mkdir __build__ && cd __build__
|
|
cmake -DCMAKE_INSTALL_PREFIX=~/.local ..
|
|
cmake --build .
|
|
cmake --build . --target check
|
|
ubuntu-cmake-check:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: '0'
|
|
- name: Install packages
|
|
run: sudo apt install libicu-dev
|
|
- name: Checkout main boost
|
|
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
|
|
- name: Update tools/boostdep
|
|
run: git submodule update --init tools/boostdep
|
|
working-directory: ../boost-root
|
|
- name: Copy files
|
|
run: cp -r $GITHUB_WORKSPACE/* libs/regex
|
|
working-directory: ../boost-root
|
|
- name: Install deps
|
|
run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex
|
|
working-directory: ../boost-root
|
|
- name: Bootstrap
|
|
run: ./bootstrap.sh
|
|
working-directory: ../boost-root
|
|
- name: CMake Test
|
|
working-directory: ../boost-root/libs/regex/test
|
|
run: |
|
|
cd cmake_subdir_test && mkdir __build__ && cd __build__
|
|
cmake ..
|
|
cmake --build .
|
|
cmake --build . --target check
|
|
rm -rf *
|
|
echo Standalone configuration
|
|
cmake -DBOOST_REGEX_STANDALONE=on ..
|
|
cmake --build .
|
|
cmake --build . --target check
|
|
cd ../../cmake_subdir_test_icu && mkdir __build__ && cd __build__
|
|
cmake ..
|
|
cmake --build .
|
|
cmake --build . --target check
|
|
rm -rf *
|
|
echo Standalone configuration
|
|
cmake -DBOOST_REGEX_STANDALONE=on ..
|
|
cmake --build .
|
|
cmake --build . --target check
|