PROTON-2773: add PN_FALLTHROUGH
macro ready for c++17/c21
#809
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: Build | |
on: [push, pull_request, workflow_dispatch] | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macOS-latest] | |
buildType: [RelWithDebInfo] | |
include: | |
- os: windows-latest | |
cmake_extra: '-A x64 -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake' | |
cmake_generator: '-G "Visual Studio 16 2019"' | |
- os: macOS-latest | |
pkg_config_path: '/usr/local/opt/openssl@1.1/lib/pkgconfig' | |
cmake_extra: '-DBUILD_RUBY=no -DTHREADERCISER=ON' | |
ctest_extra: '--exclude-regex c-threaderciser' | |
env: | |
BuildType: ${{matrix.buildType}} | |
BuildDir: ${{github.workspace}}/BLD | |
InstallPrefix: ${{github.workspace}}/INSTALL | |
PKG_CONFIG_PATH: ${{matrix.pkg_config_path}} | |
VCPKG_DEFAULT_TRIPLET: x64-windows | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Create Build and Install directories | |
run: mkdir -p "${BuildDir}" "${InstallPrefix}" | |
shell: bash | |
# PROTON-2295 avoid using go 1.15.3 on macOS, which is broken | |
- if: runner.os == 'macOS' | |
name: Setup go (Mac OS) | |
uses: actions/setup-go@v3 | |
with: | |
go-version: '^1.15.4' | |
# PROTON-2644 upgrading setup-python to v4 breaks cmake discovery of openssl on macOS | |
- name: Setup python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: 3.9 | |
architecture: x64 | |
cache: 'pip' | |
- name: Install python dependencies | |
run: | | |
python -m pip install --upgrade -r python/requirements.txt | |
- name: Install Linux dependencies | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt install -y swig libpython3-dev libsasl2-dev libjsoncpp-dev | |
- name: Install Windows dependencies | |
if: runner.os == 'Windows' | |
run: | | |
choco install -y swig --version=4.0.1 | |
vcpkg install jsoncpp | |
vcpkg integrate install | |
- name: Install MacOS dependencies | |
if: runner.os == 'macOS' | |
run: | | |
brew install libuv swig pkgconfig jsoncpp | |
- name: OTel build/install | |
if: runner.os == 'Linux' | |
working-directory: ${{github.workspace}} | |
run: sudo sh ./ci/otel.sh | |
shell: bash | |
- name: cmake configure | |
working-directory: ${{env.BuildDir}} | |
run: cmake "${{github.workspace}}" "-DCMAKE_BUILD_TYPE=${BuildType}" "-DCMAKE_INSTALL_PREFIX=${InstallPrefix}" ${{matrix.cmake_extra}} | |
shell: bash | |
- name: cmake build/install | |
run: cmake --build "${BuildDir}" --config ${BuildType} -t install | |
shell: bash | |
- name: Upload Install | |
uses: actions/upload-artifact@v3 | |
with: | |
name: qpid_proton_pkg_${{matrix.os}}_${{matrix.buildType}} | |
path: ${{env.InstallPrefix}} | |
- name: Upload python packages | |
uses: actions/upload-artifact@v3 | |
with: | |
name: python-pkgs | |
path: ${{env.BuildDir}}/python/dist | |
- id: ctest | |
name: ctest | |
working-directory: ${{env.BuildDir}} | |
run: ctest -C ${BuildType} -V -T Test --no-compress-output ${{matrix.ctest_extra}} | |
shell: bash | |
- name: Upload Test results | |
if: always() && (steps.ctest.outcome == 'failure' || steps.ctest.outcome == 'success') | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Test_Results_${{matrix.os}}_${{matrix.buildType}} | |
path: ${{env.BuildDir}}/Testing/**/*.xml | |
- name: Upload Python & C build directories on failure | |
uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: Debug-python-C-BLD_${{matrix.os}}_${{matrix.buildType}} | |
path: | | |
${{env.BuildDir}}/c | |
${{env.BuildDir}}/python | |
- name: Environment (Linux/Windows) | |
if: always() && runner.os != 'macOS' | |
run: env -0 | sort -z | tr '\0' '\n' | |
shell: bash | |
- name: Environment (macOS) | |
if: always() && runner.os == 'macOS' | |
run: env | sort | |
shell: bash |