Unfortunately they will still run once when this commit is done, but at least they won't run in the future when templates are modified.
163 lines
4.9 KiB
YAML
163 lines
4.9 KiB
YAML
# CI workflow for wxWidgets builds using CMake.
|
|
name: CMake builds
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
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'
|
|
- '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/ISSUE_TEMPLATE/**'
|
|
- '.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 .
|