Develop #318
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
# CI workflow building wxRuby3 under Windows. | |
name: Windows wxMSW builds | |
on: | |
push: | |
branches: | |
- master | |
tags: | |
- v* | |
paths-ignore: | |
- '.github/workflows/**' | |
- 'assets/**' | |
- 'lib/wx/doc/**' | |
- '**.md' | |
pull_request: | |
branches: | |
- master | |
paths-ignore: | |
- '.github/workflows/**' | |
- 'assets/**' | |
- 'lib/wx/doc/**' | |
- '**.md' | |
- 'Gemfile' | |
- '.yardopts' | |
- '.gitignore' | |
- 'LICENSE' | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
permissions: | |
contents: read | |
env: | |
DOXYGEN_ROOT: ${{ github.workspace }}\doxygen | |
WXWIDGETS_ROOT: ${{ github.workspace }}\ext\wxWidgets | |
WXWIN_ROOT: ${{ github.workspace }}\ext\wxWidgets\install | |
# WXRUBY_RELEASE: 1 | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
name: wxMSW wxRuby(${{ matrix.wxr_type }}) ${{ matrix.CXX }} ruby-${{ matrix.ruby }} wxWidgets-${{ matrix.wxWidgets }}(${{ matrix.wxw_type }}) SWIG${{ matrix.swig }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: windows-2022 | |
platform: 'x64' | |
CXX: g++-12 | |
ruby: '2.7' | |
wxWidgets: '3.2.2.1' | |
swig: '4' | |
wxw_type: embed | |
wxr_type: develop | |
- os: windows-2022 | |
platform: 'x64' | |
CXX: g++-12 | |
ruby: '3.2' | |
wxWidgets: '3.2.2.1' | |
swig: '4' | |
wxw_type: embed | |
wxr_type: develop | |
- os: windows-2022 | |
platform: 'x64' | |
CXX: g++-12 | |
ruby: '3.2' | |
wxWidgets: '3.2.2.1' | |
swig: '4' | |
wxw_type: develop | |
wxr_type: develop | |
- os: windows-2022 | |
platform: 'x64' | |
CXX: g++-12 | |
ruby: '3.2' | |
wxWidgets: '3.2.2.1' | |
swig: '4' | |
wxw_type: embed | |
wxr_type: bingem | |
- os: windows-2022 | |
platform: 'x64' | |
CXX: g++-12 | |
ruby: '3.2' | |
wxWidgets: '3.2.2.1' | |
swig: '4' | |
wxw_type: embed | |
wxr_type: gem | |
steps: | |
- name: Checkout wxRuby3 | |
uses: actions/checkout@v4 | |
- name: checkout wxWidgets | |
if: matrix.wxw_type != 'embed' | |
uses: actions/checkout@v4 | |
with: | |
repository: wxWidgets/wxWidgets | |
path: ${{ env.WXWIDGETS_ROOT }} | |
ref: v${{ matrix.wxWidgets }} | |
submodules: 'recursive' | |
- name: Install Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{ matrix.ruby }} | |
- name: Setup Ruby gems | |
run: | | |
bundle install | |
- name: Cache Doxygen | |
id: cache-doxygen | |
uses: actions/cache@v3 | |
with: | |
path: doxygen-1.9.6.windows.x64.bin.zip | |
key: ${{ runner.os }}-doxygen | |
- name: Download Doxygen tool | |
if: steps.cache-doxygen.outputs.cache-hit != 'true' | |
run: | | |
wget.exe https://www.doxygen.nl/files/doxygen-1.9.6.windows.x64.bin.zip | |
$hash = 'bdf1af97a733edd0a60fce2cf375c5c3' | |
if ((Get-FileHash doxygen-1.9.6.windows.x64.bin.zip -Algorithm MD5).Hash -ne $hash) { | |
del doxygen-1.9.6.windows.x64.bin.zip | |
throw "Doxygen Hash doesn't match!" | |
} | |
- name: Install Doxygen package | |
run: | | |
Expand-Archive -LiteralPath '.\doxygen-1.9.6.windows.x64.bin.zip' -DestinationPath $env:DOXYGEN_ROOT -Force | |
echo "$env:DOXYGEN_ROOT" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
- name: Display build environment | |
run: | | |
echo "$env:PATH" | |
ruby -v | |
doxygen -v | |
ridk exec bash -c 'gcc -v' | |
ridk exec bash -c 'g++ -v' | |
- name: Configuring wxWidgets | |
if: matrix.wxw_type != 'embed' | |
working-directory: ${{ env.WXWIDGETS_ROOT }} | |
run: | | |
ridk exec bash -c './configure --prefix=`pwd`/install --disable-tests --without-subdirs --disable-debug_info' | |
- name: Build wxWidgets | |
if: matrix.wxw_type != 'embed' | |
working-directory: ${{ env.WXWIDGETS_ROOT }} | |
run: | | |
ridk exec bash -c 'make && make install' | |
- name: Configure wxRuby3 | |
if: matrix.wxr_type != 'gem' | |
run: | | |
If ("${{ matrix.wxw_type }}" -eq "embed") { | |
bundle exec rake configure[--with-wxwin] | |
} | |
Else { | |
bundle exec rake configure WXWIN=$env:WXWIN_ROOT WXRUBY_VERBOSE=1 | |
} | |
- name: Build wxRuby3 | |
if: matrix.wxr_type != 'gem' | |
run: | | |
bundle exec rake build | |
- name: Build wxRuby3 gem | |
if: matrix.wxr_type != 'develop' | |
run: | | |
bundle exec rake ${{ matrix.wxr_type }} | |
- name: Install wxRuby3 gem | |
if: matrix.wxr_type != 'develop' | |
run: | | |
If ("${{ matrix.wxw_type }}" -eq "embed") { | |
foreach ($f in Get-ChildItem -Path pkg\*.gem) { gem install $f -- WITH_WXWIN=1 } | |
} | |
Else { | |
foreach ($f in Get-ChildItem -Path pkg\*.gem) { gem install $f } | |
} | |
- name: Run wxRuby3 regression tests | |
run: | | |
If ("${{ matrix.wxr_type }}" -eq "develop") { | |
bundle exec rake test | |
} | |
Else { | |
wxruby test | |
} |