Skip to content

feat: update macos on CI #257

feat: update macos on CI

feat: update macos on CI #257

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