PROTON-2815: [Python] no longer need to have setup.cfg in build area #876
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/[email protected]/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@v4 | |
- name: Create Build and Install directories | |
run: mkdir -p "${BuildDir}" "${InstallPrefix}" | |
shell: bash | |
- name: Setup python | |
uses: actions/setup-python@v5 | |
with: | |
cache-dependency-path: python/ci_requirements.txt | |
python-version: 3.9 | |
architecture: x64 | |
cache: 'pip' | |
- name: Install python dependencies | |
run: | | |
python -m pip install --upgrade -r python/ci_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@v4 | |
with: | |
name: qpid_proton_pkg_${{matrix.os}}_${{matrix.buildType}} | |
path: ${{env.InstallPrefix}} | |
- name: Upload python source | |
uses: actions/upload-artifact@v4 | |
with: | |
name: python-src_${{matrix.os}} | |
path: ${{env.BuildDir}}/python/dist/*.tar.gz | |
- name: Upload python wheel | |
uses: actions/upload-artifact@v4 | |
with: | |
name: python-wheel_${{matrix.os}} | |
path: ${{env.BuildDir}}/python/dist/*.whl | |
- 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@v4 | |
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@v4 | |
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 |