e676c621d4
Now that we don't use Travis CI any longer (and don't use httpbin on the other CI providers yet), we can make our life much simpler by just using Python 3.10 on all platforms instead of trying to find version-specific workarounds for various python/pip/httpbin incompatibilities. Closes #22726. (cherry picked from commit 458dc814c241066323858182e55d2186d396c09d)
170 lines
5.1 KiB
YAML
170 lines
5.1 KiB
YAML
# CI workflow for wxWidgets builds using CMake.
|
|
name: CMake builds
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- 3.2
|
|
paths-ignore:
|
|
- '.github/ISSUE_TEMPLATE/**'
|
|
- '.github/workflows/ci.yml'
|
|
- '.github/workflows/ci_mac.yml'
|
|
- '.github/workflows/ci_msw.yml'
|
|
- '.github/workflows/ci_msw_cross.yml'
|
|
- '.github/workflows/docs_update.yml'
|
|
- 'build/tools/appveyor*.bat'
|
|
- 'distrib/**'
|
|
- 'docs/**'
|
|
- 'interface/**'
|
|
- 'include/msvc/**'
|
|
- 'include/wx/msw/**'
|
|
- 'locale/**'
|
|
- 'src/msw/**'
|
|
- '*.md'
|
|
- '*.yml'
|
|
- 'wxwidgets.props'
|
|
pull_request:
|
|
branches:
|
|
- 3.2
|
|
paths-ignore:
|
|
- '.github/ISSUE_TEMPLATE/**'
|
|
- '.github/workflows/ci.yml'
|
|
- '.github/workflows/ci_mac.yml'
|
|
- '.github/workflows/ci_msw.yml'
|
|
- '.github/workflows/ci_msw_cross.yml'
|
|
- '.github/workflows/docs_update.yml'
|
|
- 'build/tools/appveyor*.bat'
|
|
- 'distrib/**'
|
|
- 'docs/**'
|
|
- 'interface/**'
|
|
- 'include/msvc/**'
|
|
- 'include/wx/msw/**'
|
|
- 'locale/**'
|
|
- 'src/msw/**'
|
|
- '*.md'
|
|
- '*.yml'
|
|
- 'wxwidgets.props'
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ${{ matrix.runner }}
|
|
name: ${{ matrix.name }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- name: Ubuntu 18.04 wxGTK 3
|
|
runner: ubuntu-18.04
|
|
cmake_generator: Unix Makefiles
|
|
cmake_samples: ALL
|
|
- name: macOS 10.15 wxOSX
|
|
runner: macos-10.15
|
|
cmake_generator: Xcode
|
|
cmake_defines: -DCMAKE_CXX_STANDARD=11
|
|
- name: macOS 10.15 wxIOS
|
|
runner: macos-10.15
|
|
cmake_generator: Xcode
|
|
cmake_defines: -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_FIND_ROOT_PATH=/usr/local -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED=NO
|
|
cmake_samples: OFF
|
|
cmake_tests: OFF
|
|
- name: Windows MSVC
|
|
runner: windows-latest
|
|
no_sudo: 1
|
|
cmake_defines: -DCMAKE_C_COMPILER=cl.exe -DCMAKE_CXX_COMPILER=cl.exe
|
|
cmake_generator: Ninja
|
|
cmake_samples: SOME
|
|
cmake_tests: CONSOLE_ONLY
|
|
|
|
env:
|
|
wxGTK_VERSION: ${{ matrix.gtk_version && matrix.gtk_version || 3 }}
|
|
|
|
# Use bash as the shell, even under MSW where the default is PowerShell.
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: 'recursive'
|
|
|
|
- name: Set environment variables
|
|
run: |
|
|
wxPROC_COUNT=`./build/tools/proc_count.sh`
|
|
if [ "${{ matrix.cmake_generator }}" == "Xcode" ]; then
|
|
# Xcode generates a lot of output, suppress it so only warnings and errors are visible
|
|
wxBUILD_ARGS="-jobs $wxPROC_COUNT -quiet"
|
|
else
|
|
wxBUILD_ARGS=-j$wxPROC_COUNT
|
|
fi
|
|
echo wxBUILD_ARGS=$wxBUILD_ARGS >> $GITHUB_ENV
|
|
|
|
cmake_tests=${{ matrix.cmake_tests }}
|
|
if [ -z $cmake_tests ]; then cmake_tests=CONSOLE_ONLY; fi
|
|
echo wxCMAKE_TESTS=$cmake_tests >> $GITHUB_ENV
|
|
|
|
cmake_samples=${{ matrix.cmake_samples }}
|
|
if [ -z $cmake_samples ]; then cmake_samples=SOME; fi
|
|
echo wxCMAKE_SAMPLES=$cmake_samples >> $GITHUB_ENV
|
|
|
|
# Setting this variable suppresses "Error retrieving accessibility bus address"
|
|
# messages from WebKit tests that we're not interested in.
|
|
echo NO_AT_BRIDGE=1 >> $GITHUB_ENV
|
|
|
|
- name: Before install
|
|
run: |
|
|
./build/tools/before_install.sh
|
|
|
|
# required for CMake to find Ninja
|
|
- name: "[Windows] Set up MSVC Developer Command Prompt"
|
|
if: runner.os == 'Windows'
|
|
uses: seanmiddleditch/gha-setup-vsdevenv@v3
|
|
|
|
- name: Configuring
|
|
run: |
|
|
cmake --version
|
|
mkdir build_cmake
|
|
pushd build_cmake
|
|
cmake -G "${{ matrix.cmake_generator }}" ${{ matrix.cmake_defines }} -DwxBUILD_SAMPLES=$wxCMAKE_SAMPLES -DwxBUILD_TESTS=$wxCMAKE_TESTS ..
|
|
|
|
- name: Building
|
|
working-directory: build_cmake
|
|
run: |
|
|
cmake --build . -- $wxBUILD_ARGS
|
|
|
|
- name: Installing
|
|
working-directory: build_cmake
|
|
run: |
|
|
if [ -z "${{ matrix.no_sudo }}" ]; then
|
|
sudo cmake --build . --target install
|
|
else
|
|
cmake --build . --target install
|
|
fi
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.10'
|
|
|
|
- name: Testing
|
|
if: matrix.cmake_tests != 'OFF'
|
|
working-directory: build_cmake
|
|
run: |
|
|
. ../build/tools/httpbin.sh
|
|
|
|
httpbin_launch
|
|
|
|
ctest -V -C Debug --output-on-failure --interactive-debug-mode 0 . || rc=$?
|
|
if [ -n "$rc" ]; then
|
|
httpbin_show_log
|
|
exit $rc
|
|
fi
|
|
|
|
- name: Testing installation
|
|
run: |
|
|
mkdir build_cmake_install_test
|
|
pushd build_cmake_install_test
|
|
cmake -G "${{ matrix.cmake_generator }}" ${{ matrix.cmake_defines }} ../samples/minimal
|
|
cmake --build .
|