feat: update macos on CI #257
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: master pre-merge check | |
on: | |
push: | |
branches: | |
- master | |
- stable_v* | |
pull_request: | |
branches: | |
- master | |
- stable_v* | |
jobs: | |
cmake-win-test: | |
name: cmake build-win | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [windows-2019, windows-2022] | |
generator: ['MSYS Makefiles'] | |
shared: [on, off] | |
include: | |
- os: windows-2019 | |
shared: on | |
generator: 'Visual Studio 16 2019' | |
- os: windows-2019 | |
shared: off | |
generator: 'Visual Studio 16 2019' | |
- os: windows-2022 | |
shared: on | |
generator: 'Visual Studio 17 2022' | |
- os: windows-2022 | |
shared: off | |
generator: 'Visual Studio 17 2022' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: setup python | |
# for libwally-core test | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
architecture: x64 | |
- name: cmake_version | |
run: cmake --version | |
- name: cmake_generage msys | |
if: matrix.generator == 'MSYS Makefiles' | |
run: cmake -S . -B build -G "${{ matrix.generator }}" -DENABLE_SHARED=${{ matrix.shared }} -DENABLE_TESTS=on | |
- name: cmake_generage vs | |
if: matrix.generator != 'MSYS Makefiles' | |
run: cmake -S . -B build -G "${{ matrix.generator }}" -A x64 -DENABLE_SHARED=${{ matrix.shared }} -DENABLE_TESTS=on | |
- name: cmake_build | |
run: cmake --build build --config Release --parallel 4 | |
- name: ctest | |
run: | | |
cd build | |
ctest -C Release --output-on-failure | |
cmake-mac-test: | |
name: cmake build-mac | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-13, macos-14, macos-15] | |
include: | |
- os: macos-13 | |
xcode_version: '14.3.1' | |
- os: macos-14 | |
xcode_version: '15.4' | |
- os: macos-15 | |
xcode_version: '16.1' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Select Xcode version | |
run: sudo xcode-select -s '/Applications/Xcode_${{matrix.xcode_version}}.app/Contents/Developer' | |
- name: Show Xcode version | |
run: xcodebuild -version | |
- name: cmake_version | |
run: cmake --version | |
- name: cmake_generage-macos | |
run: cmake -S . -B build -G "Unix Makefiles" -DENABLE_SHARED=on -DENABLE_ELEMENTS=on | |
- name: cmake_build | |
run: cmake --build build --config Release --parallel 4 | |
- name: ctest | |
run: | | |
cd build | |
ctest -C Release --output-on-failure | |
- name: lint_check | |
run: ./tools/lint_quiet.sh | |
cmake-ubuntu-test: | |
name: cmake build | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-24.04, ubuntu-22.04, ubuntu-20.04] | |
shared: [on, off] | |
elements: [on] | |
include: | |
- os: ubuntu-22.04 | |
elements: off | |
steps: | |
- uses: actions/checkout@v4 | |
- name: dump version | |
run: | | |
cmake --version | |
gcc --version | |
- name: cmake_configure | |
run: cmake -S . -B build -G "Unix Makefiles" -DENABLE_SHARED=${{ matrix.shared }} -DENABLE_ELEMENTS=${{ matrix.elements }} -DTARGET_RPATH=./build/Release | |
- name: cmake-build | |
run: cmake --build build --config Release --parallel 4 | |
- name: lint_check | |
run: ./tools/lint_quiet.sh | |
- name: test | |
run: | | |
cd build | |
ctest -C Release --output-on-failure | |
cd .. | |
cmake-cpp-version-test: | |
name: cmake cpp version check | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [windows-2022, ubuntu-22.04] | |
cppver: [11, 14, 17, 20] | |
include: | |
- os: windows-2022 | |
generator: 'Visual Studio 17 2022' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: setup python | |
# for libwally-core test | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
architecture: x64 | |
- name: dump version | |
run: | | |
cmake --version | |
gcc --version | |
- name: cmake_configure | |
if: matrix.os != 'windows-2022' | |
run: cmake -S . -B build -G "Unix Makefiles" -DENABLE_SHARED=on -DENABLE_ELEMENTS=on -DENABLE_TESTS=on -DSTD_CPP_VERSION=${{ matrix.cppver }} -DTARGET_RPATH=./build/Release | |
- name: cmake_generage vs | |
if: matrix.os == 'windows-2022' | |
run: cmake -S . -B build -G "${{ matrix.generator }}" -A x64 -DENABLE_SHARED=on -DENABLE_TESTS=on -DSTD_CPP_VERSION=${{ matrix.cppver }} | |
- name: cmake_build | |
run: cmake --build build --config Release --parallel 4 | |
- name: test | |
run: | | |
cd build | |
ctest -C Release --output-on-failure | |
cmake-ubuntu-coverage: | |
name: cmake build-ubuntu | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-22.04] | |
shared: [on] | |
elements: [on] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: dump version | |
run: | | |
cmake --version | |
gcc --version | |
- name: ubuntu-apt-install | |
run: | | |
cat /etc/os-release | |
sudo apt install lcov | |
- name: cmake-build | |
run: | | |
cmake --version | |
cmake -S . -B build -G "Unix Makefiles" -DENABLE_SHARED=${{ matrix.shared }} -DENABLE_ELEMENTS=${{ matrix.elements }} -DCMAKE_BUILD_TYPE=Debug -DENABLE_COVERAGE=${{ matrix.elements }} -DTARGET_RPATH=./build/Debug | |
cmake --build build --config Debug --parallel 4 | |
- name: lint_check | |
run: ./tools/lint_quiet.sh | |
- name: test | |
run: | | |
cd build | |
ctest -C Debug --output-on-failure | |
cd .. | |
- name: collect coverage | |
run: | | |
cd build | |
make lcov_cfdcore | |
zip -r lcov_cfdcore_output.zip lcov_cfdcore_output | |
cd .. | |
- name: upload coverage | |
uses: actions/upload-artifact@v3 | |
with: | |
name: output-lcov-cfdcore-${{ matrix.os }} | |
path: ./build/lcov_cfdcore_output.zip | |
ubuntu-valgrind: | |
name: valgrind-ubuntu | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-22.04] | |
shared: [on] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: dump version | |
run: | | |
cmake --version | |
gcc --version | |
- name: ubuntu-apt-install | |
run: | | |
cat /etc/os-release | |
sudo apt-get update | |
sudo apt-get install -y valgrind | |
- name: cmake-build | |
run: | | |
cmake --version | |
cmake -S . -B build -G "Unix Makefiles" -DENABLE_SHARED=${{ matrix.shared }} -DCMAKE_BUILD_TYPE=Debug -DTARGET_RPATH=./build/Debug | |
cmake --build build --config Debug --parallel 4 | |
- name: valgrind | |
run: | | |
# --valgrind-stacksize=1048576 --num-callers=12 | |
valgrind -v --tool=memcheck --leak-check=full --valgrind-stacksize=10485760 --log-file=./valgrind.log --time-stamp=yes ./build/Debug/cfdcore_test | |
- name: upload coverage | |
uses: actions/upload-artifact@v4 | |
with: | |
name: valgrind-log | |
path: ./valgrind.log | |
doxygen-ubuntu: | |
name: doxygen-check | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install_doxygen | |
run: sudo apt install doxygen graphviz | |
- name: doxygen_check | |
run: | | |
cd doc | |
doxygen Doxyfile_quiet_all |