Skip to content

Fix #2513 , #2517

Fix #2513 , #2517 #594

Workflow file for this run

name: check build
on:
# allow manually running workflow, useful for testing branches
workflow_dispatch:
# run on push in master
push:
branches:
- master
paths-ignore:
- '.vscode/**'
- '.cirrus.yml'
- '.clang-format'
- '.clang-format.json'
- '.editorconfig'
- '.gitignore'
- '.travis.yml'
- 'Brewfile'
- 'CODESTYLE.md'
- 'dependencies-minimal.txt'
- 'dependencies.txt'
- 'Dockerfile'
- 'HACKING.md'
- 'LICENSE.txt'
- 'README.md'
# run on pull request to master
pull_request:
branches:
- master
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
jobs:
ubuntu-low-compiler:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
compiler: [ gcc, clang ]
include:
- compiler: gcc
version: 10
c: /usr/bin/gcc-10
cxx: /usr/bin/g++-10
- compiler: clang
version: 10
c: /usr/bin/clang-10
cxx: /usr/bin/clang++-10
name: ubuntu-${{ matrix.compiler }}-${{ matrix.version }}
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Install dependencies
run: >
sudo apt-get update;
sudo apt-get -y install
libuchardet-dev libxml2-dev libwxgtk3.0-gtk3-dev
libx11-dev libxi-dev
libssl-dev libsmbclient-dev libnfs-dev libneon27-dev libssh-dev
libarchive-dev libpcre2-dev
- name: Create Build Environment
# Create a separate build directory as working directory for all subsequent commands
run: mkdir -p _build
- name: Configure CMake
# Use a bash shell so we can use the same syntax for environment variable
# access regardless of the host operating system
shell: bash
# -S and -B options specify source and build directories
run: >
cmake -S . -B _build -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DPYTHON=yes
-DCMAKE_C_COMPILER=${{ matrix.c }} -DCMAKE_CXX_COMPILER=${{ matrix.cxx }}
- name: Build
shell: bash
# Execute the build. You can specify a specific target with "--target <NAME>"
run: |
cmake --build _build --config $BUILD_TYPE -j$(nproc --all)
ubuntu-medium-compiler:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
compiler: [ gcc, clang ]
include:
- compiler: gcc
version: 12
c: /usr/bin/gcc-12
cxx: /usr/bin/g++-12
- compiler: clang
version: 15
c: /usr/bin/clang-15
cxx: /usr/bin/clang++-15
name: ubuntu-${{ matrix.compiler }}-${{ matrix.version }}
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Install dependencies
run: >
sudo apt-get update;
sudo apt-get -y install
libuchardet-dev libxml2-dev libwxgtk3.0-gtk3-dev
libx11-dev libxi-dev
libssl-dev libsmbclient-dev libnfs-dev libneon27-dev libssh-dev
libarchive-dev libpcre2-dev
- name: Create Build Environment
# Create a separate build directory as working directory for all subsequent commands
run: mkdir -p _build
- name: Configure CMake
# Use a bash shell so we can use the same syntax for environment variable
# access regardless of the host operating system
shell: bash
# -S and -B options specify source and build directories
run: >
cmake -S . -B _build -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DPYTHON=yes
-DCMAKE_C_COMPILER=${{ matrix.c }} -DCMAKE_CXX_COMPILER=${{ matrix.cxx }}
- name: Build
shell: bash
# Execute the build. You can specify a specific target with "--target <NAME>"
run: |
cmake --build _build --config $BUILD_TYPE -j$(nproc --all)
ubuntu-high-compiler:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
compiler: [ gcc, clang ]
include:
- compiler: gcc
version: 14
c: /usr/bin/gcc-14
cxx: /usr/bin/g++-14
- compiler: clang
version: 18
c: /usr/bin/clang-18
cxx: /usr/bin/clang++-18
name: ubuntu-${{ matrix.compiler }}-${{ matrix.version }}
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Install dependencies
run: >
sudo apt-get update;
sudo apt-get -y install
libuchardet-dev libxml2-dev libwxgtk3.2-dev
libx11-dev libxi-dev
libssl-dev libsmbclient-dev libnfs-dev libneon27-dev libssh-dev
libarchive-dev libpcre2-dev
- name: Create Build Environment
# Create a separate build directory as working directory for all subsequent commands
run: mkdir -p _build
- name: Configure CMake
# Use a bash shell so we can use the same syntax for environment variable
# access regardless of the host operating system
shell: bash
# -S and -B options specify source and build directories
run: >
cmake -S . -B _build -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DPYTHON=yes
-DCMAKE_C_COMPILER=${{ matrix.c }} -DCMAKE_CXX_COMPILER=${{ matrix.cxx }}
- name: Build
shell: bash
# Execute the build. You can specify a specific target with "--target <NAME>"
run: |
cmake --build _build --config $BUILD_TYPE -j$(nproc --all)
macos14-arm64-clang15:
runs-on: macos-14
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Install dependencies
# libx11, openssl is already installed
run: >
brew install
uchardet libxml2 wxwidgets
libxi
samba libnfs neon libssh
libarchive pcre
- name: Relink 'keg-only' packages
run: brew link libarchive --force
- name: Create Build Environment
# Create a separate build directory as working directory for all subsequent commands
run: mkdir -p _build
- name: Configure CMake
# Use a bash shell so we can use the same syntax for environment variable
# access regardless of the host operating system
shell: bash
# -S and -B options specify source and build directories
run: cmake -S . -B _build -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DPYTHON=yes
- name: Build
shell: bash
# Execute the build. You can specify a specific target with "--target <NAME>"
run: |
cmake --build _build --config $BUILD_TYPE -j$(sysctl -n hw.logicalcpu)