Inside Bitcoin
Opening the selected file…
Inside Bitcoin
Opening the selected file…
The code behind the network, with room to understand it.
Release published 2026-10-28 · Snapshot fetched 2026-11-01. Latest stable release at fetch time; development branches and Git history are excluded. Only the selected code window and visible folders load here.
1# Copyright 2021 The CRC32C Authors. All rights reserved.2# Use of this source code is governed by a BSD-style license that can be3# found in the LICENSE file. See the AUTHORS file for names of contributors.5name: ci6on: [push, pull_request]8permissions:9contents: read11jobs:12build-and-test:13name: >-14CI15${{ matrix.os }}16${{ matrix.compiler }}17${{ matrix.optimized && 'release' || 'debug' }}18${{ matrix.shared_lib && 'shared' || 'static' }}19${{ matrix.use_glog && 'glog' || 'no-glog' }}20runs-on: ${{ matrix.os }}21strategy:22fail-fast: false23matrix:24compiler: [clang, gcc, msvc]25os: [ubuntu-latest, macos-latest, windows-latest]26optimized: [true, false]27shared_lib: [true, false]28use_glog: [true, false]29exclude:30# Our glog config doesn't work with shared libraries.31- use_glog: true32shared_lib: true33# MSVC only works on Windows.34- os: ubuntu-latest35compiler: msvc36- os: macos-latest37compiler: msvc38# Not testing with GCC on macOS.39- os: macos-latest40compiler: gcc41# Only testing with MSVC on Windows.42- os: windows-latest43compiler: clang44- os: windows-latest45compiler: gcc46# Not testing fringe configurations (glog, shared libraries) on Windows.47- os: windows-latest48use_glog: true49- os: windows-latest50shared_lib: true51include:52- compiler: clang53CC: clang54CXX: clang++55- compiler: gcc56CC: gcc57CXX: g++58- compiler: msvc59CC:60CXX:62env:63CMAKE_BUILD_DIR: ${{ github.workspace }}/build64CMAKE_BUILD_TYPE: ${{ matrix.optimized && 'RelWithDebInfo' || 'Debug' }}65CC: ${{ matrix.CC }}66CXX: ${{ matrix.CXX }}67BINARY_SUFFIX: ${{ startsWith(matrix.os, 'windows') && '.exe' || '' }}68BINARY_PATH: >-69${{ format(70startsWith(matrix.os, 'windows') && '{0}\build\{1}\' || '{0}/build/',71github.workspace,72matrix.optimized && 'RelWithDebInfo' || 'Debug') }}74steps:75- uses: actions/checkout@v276with:77submodules: true79- name: Generate build config80run: >-81cmake -S "${{ github.workspace }}" -B "${{ env.CMAKE_BUILD_DIR }}"82-DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }}83-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/install_test/84-DBUILD_SHARED_LIBS=${{ matrix.shared_lib && '1' || '0' }}85-DCRC32C_USE_GLOG=${{ matrix.use_glog && '1' || '0' }}87- name: Build88run: >-89cmake --build "${{ env.CMAKE_BUILD_DIR }}"90--config "${{ env.CMAKE_BUILD_TYPE }}"92- name: Run C++ API Tests93run: ${{ env.BINARY_PATH }}crc32c_tests${{ env.BINARY_SUFFIX }}95- name: Run C API Tests96run: ${{ env.BINARY_PATH }}crc32c_capi_tests${{ env.BINARY_SUFFIX }}98- name: Run Benchmarks99run: ${{ env.BINARY_PATH }}crc32c_bench${{ env.BINARY_SUFFIX }}101- name: Test CMake installation102run: cmake --build "${{ env.CMAKE_BUILD_DIR }}" --target install
Independent explanations by MyBitcoinExplorer. Not affiliated with or endorsed by Bitcoin Core. Guides are educational and do not replace the source or its tests.
Bitcoin Core source © its contributors, distributed under the MIT license. Original notices and bundled third-party licenses are retained in the source tree.