Repository navigation
116 lines (105 loc) · 3.47 KB
/
Copy pathci.yml
File metadata and controls
116 lines (105 loc) · 3.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#
# Copyright 2020-2021 Peter Dimov
# Copyright 2021 Andrey Semashev
# Copyright 2021-2024 Alexander Grund
# Copyright 2022-2025 James E. King III
# Copyright 2023 Alan de Freitas
#
# 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)
#
# This workflow uses the Boost.CI reusable workflow which builds a variety of
# configurations of your project, runs tests, and generates code coverage reports.
#
# To use it, copy this file into your repository as `.github/workflows/ci.yml` and
# customize it appropriately.
#
---
name: Boost.CI
on:
pull_request:
push:
branches:
- master
- develop
- bugfix/**
- feature/**
- fix/**
- pr/**
paths-ignore:
- LICENSE_1_0.txt
- meta/**
- README.md
jobs:
call-boost-ci:
name: Run Boost.CI
# Like most Boost libraries, we track master: that keeps the job matrix
# current. Pinning this reference to a commit would pin the workflow
# only, as it always fetches its scripts from the master branch of
# boost-ci.
uses: boostorg/boost-ci/.github/workflows/reusable.yml@master
with:
# These compilers fail.
exclude_compiler: 'clang-3.5,clang-3.6,clang-3.7,clang-3.8,gcc-4.8,gcc-4.9'
# This is the default, but we want release builds regardless of it:
# some bugs, like the MSVC /O2 miscompilation of
# bit_iterator_base::add(), only show up with optimizations on.
b2_variant: 'debug,release'
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
COVERITY_SCAN_NOTIFICATION_EMAIL: ${{ secrets.COVERITY_SCAN_NOTIFICATION_EMAIL }}
COVERITY_SCAN_TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
antora:
name: Antora docs
strategy:
matrix:
include:
- { name: Windows, os: windows-latest }
- { name: Ubuntu, os: ubuntu-latest }
- { name: macOS, os: macos-15 }
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
steps:
- name: Install packages
uses: alandefreitas/cpp-actions/package-install@v1.9.5
with:
apt-get: git cmake
- name: Clone Boost.DynamicBitset
uses: actions/checkout@v7
- name: Clone Boost
uses: alandefreitas/cpp-actions/boost-clone@v1.9.5
id: boost-clone
with:
branch: ${{ (github.ref_name == 'master' && github.ref_name) || 'develop' }}
boost-dir: ../boost-source
scan-modules-dir: .
scan-modules-ignore: dynamic_bitset
# Keep this in sync with NODE_VERSION in the build_docs scripts of
# boostorg/release-tools, which build the published documentation.
- uses: actions/setup-node@v7
with:
node-version: 22
- name: Build Antora docs
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config --global --add safe.directory "$(pwd)"
cd ..
BOOST_SRC_DIR="$(pwd)/boost-source"
export BOOST_SRC_DIR
cd dynamic_bitset
cd doc
bash ./build_antora.sh
# Antora returns zero even if it fails, so we check if the site directory exists.
if [ ! -d "html" ]
then
echo "Antora build failed"
exit 1
fi
- name: Create Antora docs artifact
uses: actions/upload-artifact@v7
with:
name: antora-docs-${{ matrix.name }}
path: doc/html