ddde0f1eea
Just skip using sudo under this OS, but still run "cmake install" as this is required for the final test, checking the installation success, to work.
161 lines
4.8 KiB
YAML
161 lines
4.8 KiB
YAML
# CI workflow for wxWidgets builds using CMake.
|
|
name: CMake builds
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
paths-ignore:
|
|
- '.github/workflows/ci.yml'
|
|
- '.github/workflows/ci_mac.yml'
|
|
- '.github/workflows/ci_msw.yml'
|
|
- '.github/workflows/ci_msw_cross.yml'
|
|
- 'build/tools/appveyor*.bat'
|
|
- 'distrib/**'
|
|
- 'docs/**'
|
|
- 'interface/**'
|
|
- 'include/msvc/**'
|
|
- 'include/wx/msw/**'
|
|
- 'locale/**'
|
|
- 'src/msw/**'
|
|
- '*.md'
|
|
- '*.yml'
|
|
- 'wxwidgets.props'
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
paths-ignore:
|
|
- '.github/workflows/ci.yml'
|
|
- '.github/workflows/ci_mac.yml'
|
|
- '.github/workflows/ci_msw.yml'
|
|
- '.github/workflows/ci_msw_cross.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: 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 .
|