Optimize binary get_number
implementation by reading multiple bytes at once
#3457
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: Ubuntu | |
on: | |
push: | |
branches: | |
- develop | |
- master | |
- release/* | |
pull_request: | |
workflow_dispatch: | |
permissions: | |
contents: read | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
ci_test_clang: | |
runs-on: ubuntu-latest | |
container: silkeh/clang:dev | |
steps: | |
- name: Install git and unzip | |
run: apt-get update ; apt-get install -y git unzip | |
- uses: actions/checkout@v4 | |
- name: Get latest CMake and ninja | |
uses: lukka/[email protected] | |
- name: Run CMake | |
run: cmake -S . -B build -DJSON_CI=On | |
- name: Build | |
run: cmake --build build --target ci_test_clang | |
ci_test_gcc: | |
runs-on: ubuntu-latest | |
container: ghcr.io/nlohmann/json-ci:v2.4.0 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Run CMake | |
run: cmake -S . -B build -DJSON_CI=On | |
- name: Build | |
run: cmake --build build --target ci_test_gcc | |
ci_static_analysis: | |
runs-on: ubuntu-latest | |
container: ghcr.io/nlohmann/json-ci:v2.4.0 | |
strategy: | |
matrix: | |
target: [ci_cppcheck, ci_test_valgrind, ci_test_amalgamation, ci_test_single_header, ci_single_binaries, ci_infer] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Run CMake | |
run: cmake -S . -B build -DJSON_CI=On | |
- name: Build | |
run: cmake --build build --target ${{ matrix.target }} | |
ci_static_analysis_ubuntu: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
target: [ci_cpplint, ci_reproducible_tests, ci_non_git_tests, ci_offline_testdata] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get latest CMake and ninja | |
uses: lukka/[email protected] | |
- name: Run CMake | |
run: cmake -S . -B build -DJSON_CI=On | |
- name: Build | |
run: cmake --build build --target ${{ matrix.target }} | |
ci_static_analysis_clang: | |
runs-on: ubuntu-latest | |
container: silkeh/clang:dev | |
strategy: | |
matrix: | |
target: [ci_clang_tidy, ci_test_clang_sanitizer, ci_clang_analyze] | |
steps: | |
- name: Install git, clang-tools, and unzip | |
run: apt-get update ; apt-get install -y git clang-tools unzip | |
- uses: actions/checkout@v4 | |
- name: Get latest CMake and ninja | |
uses: lukka/[email protected] | |
- name: Run CMake | |
run: cmake -S . -B build -DJSON_CI=On | |
- name: Build | |
run: cmake --build build --target ${{ matrix.target }} | |
ci_cmake_options: | |
runs-on: ubuntu-latest | |
container: ubuntu:focal | |
strategy: | |
matrix: | |
target: [ci_cmake_flags, ci_test_diagnostics, ci_test_noexceptions, ci_test_noimplicitconversions, ci_test_legacycomparison, ci_test_noglobaludls] | |
steps: | |
- name: Install build-essential | |
run: apt-get update ; apt-get install -y build-essential unzip wget git | |
- uses: actions/checkout@v4 | |
- name: Get latest CMake and ninja | |
uses: lukka/[email protected] | |
- name: Run CMake | |
run: cmake -S . -B build -DJSON_CI=On | |
- name: Build | |
run: cmake --build build --target ${{ matrix.target }} | |
ci_test_coverage: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
checks: write | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies and de_DE locale | |
run: | | |
sudo apt-get clean | |
sudo apt-get update | |
sudo apt-get install -y build-essential cmake lcov ninja-build make locales gcc-multilib g++-multilib | |
sudo locale-gen de_DE | |
sudo update-locale | |
- name: Run CMake | |
run: cmake -S . -B build -DJSON_CI=On | |
- name: Build | |
run: cmake --build build --target ci_test_coverage | |
- name: Archive coverage report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: code-coverage-report | |
path: ${{ github.workspace }}/build/html | |
- name: Publish report to Coveralls | |
uses: coverallsapp/[email protected] | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
path-to-lcov: ${{ github.workspace }}/build/json.info.filtered.noexcept | |
ci_test_compilers_gcc_old: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
compiler: ['4.8', '4.9', '5', '6'] | |
container: ghcr.io/nlohmann/json-ci:v2.4.0 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Run CMake | |
run: CXX=g++-${{ matrix.compiler }} cmake -S . -B build -DJSON_CI=On | |
- name: Build | |
run: cmake --build build --target ci_test_compiler_g++-${{ matrix.compiler }} | |
ci_test_compilers_gcc: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
# older GCC docker images (4, 5, 6) fail to check out code | |
compiler: ['7', '8', '9', '10', '11', '12', '13', '14', 'latest'] | |
container: gcc:${{ matrix.compiler }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get latest CMake and ninja | |
uses: lukka/[email protected] | |
- name: Run CMake | |
run: cmake -S . -B build -DJSON_CI=On | |
- name: Build | |
run: cmake --build build --target ci_test_compiler_default | |
ci_test_compilers_clang: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
compiler: ['3.5', '3.6', '3.7', '3.8', '3.9', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15-bullseye', '16', '17', '18', '19', 'latest'] | |
container: silkeh/clang:${{ matrix.compiler }} | |
steps: | |
- name: Install unzip and git | |
run: apt-get update ; apt-get install -y unzip git | |
- uses: actions/checkout@v4 | |
- name: Get latest CMake and ninja | |
uses: lukka/[email protected] | |
- name: Set env FORCE_STDCPPFS_FLAG for clang 7 / 8 / 9 / 10 | |
run: echo "JSON_FORCED_GLOBAL_COMPILE_OPTIONS=-DJSON_HAS_FILESYSTEM=0;-DJSON_HAS_EXPERIMENTAL_FILESYSTEM=0" >> "$GITHUB_ENV" | |
if: ${{ matrix.compiler == '7' || matrix.compiler == '8' || matrix.compiler == '9' || matrix.compiler == '10' }} | |
- name: Run CMake | |
run: cmake -S . -B build -DJSON_CI=On | |
- name: Build | |
run: cmake --build build --target ci_test_compiler_default | |
ci_test_compilers: | |
runs-on: ubuntu-latest | |
container: ghcr.io/nlohmann/json-ci:v2.4.0 | |
strategy: | |
matrix: | |
compiler: [g++-4.8] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Run CMake | |
run: cmake -S . -B build -DJSON_CI=On | |
- name: Build | |
run: cmake --build build --target ci_test_compiler_${{ matrix.compiler }} | |
ci_test_standards_gcc: | |
runs-on: ubuntu-latest | |
container: ghcr.io/nlohmann/json-ci:v2.4.0 | |
strategy: | |
matrix: | |
standard: [11, 14, 17, 20, 23] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Run CMake | |
run: cmake -S . -B build -DJSON_CI=On | |
- name: Build | |
run: cmake --build build --target ci_test_gcc_cxx${{ matrix.standard }} | |
ci_test_standards_clang: | |
runs-on: ubuntu-latest | |
container: silkeh/clang:latest | |
strategy: | |
matrix: | |
standard: [11, 14, 17, 20, 23] | |
stdlib: [libcxx, libstdcxx] | |
steps: | |
- name: Install git and unzip | |
run: apt-get update ; apt-get install -y git unzip | |
- uses: actions/checkout@v4 | |
- name: Get latest CMake and ninja | |
uses: lukka/[email protected] | |
- name: Run CMake | |
run: cmake -S . -B build -DJSON_CI=On | |
- name: Build with libc++ | |
run: cmake --build build --target ci_test_clang_libcxx_cxx${{ matrix.standard }} | |
if: ${{ matrix.stdlib == 'libcxx' }} | |
- name: Build with libstdc++ | |
run: cmake --build build --target ci_test_clang_cxx${{ matrix.standard }} | |
if: ${{ matrix.stdlib == 'libstdcxx' }} | |
ci_cuda_example: | |
runs-on: ubuntu-latest | |
container: ghcr.io/nlohmann/json-ci:v2.4.0 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Run CMake | |
run: cmake -S . -B build -DJSON_CI=On | |
- name: Build | |
run: cmake --build build --target ci_cuda_example | |
ci_icpc: | |
runs-on: ubuntu-latest | |
container: ghcr.io/nlohmann/json-ci:v2.2.0 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Run CMake | |
run: cmake -S . -B build -DJSON_CI=On | |
- name: Build | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
cmake --build build --target ci_icpc | |
ci_reuse_compliance: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' | |
- name: Install REUSE tool | |
run: python -m pip install reuse | |
- name: Run REUSE lint | |
run: reuse lint | |
ci_test_documentation: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
target: [ci_test_examples, ci_test_api_documentation] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Run CMake | |
run: cmake -S . -B build -DJSON_CI=On | |
- name: Build | |
run: cmake --build build --target ${{ matrix.target }} |