Skip to content

Automatically generate documentation of export formats #392

Automatically generate documentation of export formats

Automatically generate documentation of export formats #392

Workflow file for this run

name: CMake
on: [ push, pull_request ]
env:
BUILD_TYPE: Release
MSYS: D:\msys2
jobs:
build:
strategy:
matrix:
os: [ ubuntu, macos, windows ]
qt: [ "5.15.2", "6.6.2" ]
include:
- os: ubuntu
generator: Unix Makefiles
openssl_root: /usr
artifact: build/xca-*-Linux.tar.gz
host: linux
runs: ubuntu-latest
- os: macos
generator: Unix Makefiles
openssl_root: /opt/homebrew/opt/openssl
artifact: build/xca-*.dmg
host: mac
runs: macos-latest
- os: windows
generator: MinGW Makefiles
openssl_root: D:\msys2\msys64\mingw64
artifact: |
build/xca-*.msi
build/xca-portable-*.zip
host: windows
- os: windows
qt: "5.15.2"
winarch: win64_mingw81
runs: windows-2019
exclude:
- os: windows
qt: "6.6.2"
- os: macos
qt: "5.15.2"
runs-on: ${{matrix.runs}}
steps:
- name: Install Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install Sphinx
run: |
python -m pip install --upgrade pip
pip install sphinx
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
arch: ${{matrix.winarch}}
version: ${{matrix.qt}}
- name: Install MSYS2 and OpenSSL on Windows
uses: msys2/setup-msys2@v2
if: matrix.os == 'windows'
with:
location: ${{env.MSYS}}
msystem: mingw64
install: mingw-w64-x86_64-openssl openssl-devel base-devel mingw-w64-x86_64-gcc
- name: Brew install OpenSSL
if: matrix.os == 'macos'
run: brew install openssl
- name: Checkout XCA
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Configure
# No YAML Multiline mechanism (>, |, \, >-, >+2 whatever) works as expected
# Give up. Live with the long line
run: cmake -B ${{github.workspace}}/build -G "${{matrix.generator}}" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DOPENSSL_ROOT_DIR=${{matrix.openssl_root}} --warn-uninitialized -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15"
- name: Build
run: cmake --build ${{github.workspace}}/build -j 5 -v
- name: Fixup after WindeployQT and Install
if: matrix.os == 'windows'
run: |
cd ${{env.MSYS}}\msys64\mingw64\bin
cmake -E copy libgcc_s_seh-1.dll libstdc++-6.dll libwinpthread-1.dll ${{github.workspace}}\build
cmake --build ${{github.workspace}}/build -t install
- name: Test
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: |
cmake --build ${{github.workspace}}/build -t tests
ctest --test-dir ${{github.workspace}}/build -L console
- name: Install
if: matrix.os != 'windows'
run: DESTDIR=${{github.workspace}}/build/INSTALL cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -t install
- name: Pack
run: |
cd ${{github.workspace}}/build
cpack -C ${{env.BUILD_TYPE}}
- name: Deploy
uses: actions/upload-artifact@v4
with:
path: ${{matrix.artifact}}
name: ${{matrix.os}}-${{matrix.qt}}