mirror of
https://github.com/boostorg/boostbook.git
synced 2026-02-02 08:42:12 +00:00
116 lines
3.6 KiB
YAML
116 lines
3.6 KiB
YAML
# Copyright 2024 Andrey Semashev
|
|
#
|
|
# Distributed under the Boost Software License, Version 1.0.
|
|
# https://www.boost.org/LICENSE_1_0.txt
|
|
|
|
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- master
|
|
- develop
|
|
- feature/**
|
|
|
|
concurrency:
|
|
group: ${{format('{0}:{1}', github.repository, github.ref)}}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
GIT_FETCH_JOBS: 8
|
|
NET_RETRY_COUNT: 5
|
|
|
|
jobs:
|
|
posix:
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- os: ubuntu-latest
|
|
install:
|
|
- curl
|
|
- xsltproc
|
|
- docbook-xsl
|
|
- docbook-xml
|
|
- doxygen
|
|
- python-is-python3
|
|
- python3-lxml
|
|
|
|
timeout-minutes: 15
|
|
runs-on: ${{matrix.os}}
|
|
container: ${{matrix.container}}
|
|
|
|
steps:
|
|
- name: Setup environment
|
|
run: |
|
|
if [ -f "/etc/debian_version" ]
|
|
then
|
|
echo "DEBIAN_FRONTEND=noninteractive" >> $GITHUB_ENV
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
fi
|
|
git config --global pack.threads 0
|
|
|
|
- name: Install packages
|
|
if: matrix.install
|
|
run: |
|
|
sudo apt-get -o Acquire::Retries=$NET_RETRY_COUNT update
|
|
sudo apt-get -o Acquire::Retries=$NET_RETRY_COUNT install -y ${{join(matrix.install, ' ')}}
|
|
|
|
- name: Setup Boost
|
|
run: |
|
|
echo GITHUB_REPOSITORY: $GITHUB_REPOSITORY
|
|
GIT_MODULE=${GITHUB_REPOSITORY#*/}
|
|
echo GIT_MODULE: $GIT_MODULE
|
|
echo "GIT_MODULE=$GIT_MODULE" >> $GITHUB_ENV
|
|
echo GITHUB_BASE_REF: $GITHUB_BASE_REF
|
|
echo GITHUB_REF: $GITHUB_REF
|
|
REF=${GITHUB_BASE_REF:-$GITHUB_REF}
|
|
REF=${REF#refs/heads/}
|
|
echo REF: $REF
|
|
BOOST_BRANCH=develop && [ "$REF" = "master" ] && BOOST_BRANCH=master || true
|
|
echo BOOST_BRANCH: $BOOST_BRANCH
|
|
BUILD_JOBS=$((nproc || sysctl -n hw.ncpu) 2> /dev/null)
|
|
echo "BUILD_JOBS=$BUILD_JOBS" >> $GITHUB_ENV
|
|
mkdir -p snapshot
|
|
cd snapshot
|
|
echo "Downloading module snapshot: https://github.com/${GITHUB_REPOSITORY}/archive/${GITHUB_SHA}.tar.gz"
|
|
curl -L --retry "$NET_RETRY_COUNT" -o "${GIT_MODULE}-${GITHUB_SHA}.tar.gz" "https://github.com/${GITHUB_REPOSITORY}/archive/${GITHUB_SHA}.tar.gz"
|
|
tar -xf "${GIT_MODULE}-${GITHUB_SHA}.tar.gz"
|
|
if [ ! -d "${GIT_MODULE}-${GITHUB_SHA}" ]
|
|
then
|
|
echo "Module snapshot does not contain the module directory ${GIT_MODULE}-${GITHUB_SHA}:"
|
|
ls -la
|
|
exit 1
|
|
fi
|
|
rm -f "${GIT_MODULE}-${GITHUB_SHA}.tar.gz"
|
|
cd ..
|
|
git clone -b "$BOOST_BRANCH" --depth 1 "https://github.com/boostorg/boost.git" "boost-root"
|
|
cd boost-root
|
|
mkdir -p tools
|
|
rm -rf "tools/$GIT_MODULE"
|
|
mv -f "../snapshot/${GIT_MODULE}-${GITHUB_SHA}" "tools/$GIT_MODULE"
|
|
rm -rf "../snapshot"
|
|
git submodule update --init --recursive --jobs $GIT_FETCH_JOBS libs/config libs/headers tools/boost_install tools/build
|
|
./bootstrap.sh
|
|
echo "B2=$PWD/b2" >> $GITHUB_ENV
|
|
|
|
- name: Run base tests
|
|
run: |
|
|
cd "boost-root/tools/$GIT_MODULE/test"
|
|
"$B2" -j $BUILD_JOBS
|
|
|
|
- name: Run Doxygen tests
|
|
run: |
|
|
cd "boost-root/tools/$GIT_MODULE/test/doxygen"
|
|
"$B2" -j $BUILD_JOBS
|
|
|
|
- name: Run more tests
|
|
run: |
|
|
cd "boost-root/tools/$GIT_MODULE/test/more"
|
|
python run-tests.py
|