Files
velopack/.github/workflows/build-samples.yml
2025-06-27 10:54:45 +01:00

84 lines
3.1 KiB
YAML

name: Build Samples
on:
workflow_call:
jobs:
samples:
strategy:
fail-fast: false
matrix:
sample:
- CPlusPlusWidgets
- CPlusPlusWin32
- CSharpAvalonia
- CSharpUno
- CSharpWpf
- NodeJSElectron
- PythonWXPython
- RustIced
os: [windows-latest, ubuntu-latest, macos-latest]
exclude:
- os: ubuntu-latest
sample: CPlusPlusWin32
- os: macos-latest
sample: CPlusPlusWin32
- os: ubuntu-latest
sample: CSharpWpf
- os: macos-latest
sample: CSharpWpf
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install wxWidgets (Windows)
working-directory: samples/${{ matrix.sample }}
run: |
curl -L -o wxWidgets-3.2.6-headers.7z https://github.com/wxWidgets/wxWidgets/releases/download/v3.2.6/wxWidgets-3.2.6-headers.7z
curl -L -o wxMSW-3.2.6_vc14x_x64_Dev.7z https://github.com/wxWidgets/wxWidgets/releases/download/v3.2.6/wxMSW-3.2.6_vc14x_x64_Dev.7z
curl -L -o wxMSW-3.2.6_vc14x_x64_ReleaseDLL.7z https://github.com/wxWidgets/wxWidgets/releases/download/v3.2.6/wxMSW-3.2.6_vc14x_x64_ReleaseDLL.7z
7z x wxWidgets-3.2.6-headers.7z -o".\wxWidgets" -y
7z x wxMSW-3.2.6_vc14x_x64_Dev.7z -o".\wxWidgets" -y
7z x wxMSW-3.2.6_vc14x_x64_ReleaseDLL.7z -o".\wxWidgets" -y
dir wxWidgets
if: ${{ matrix.sample == 'CPlusPlusWidgets' && matrix.os == 'windows-latest' }}
- name: Install wxWidgets (MacOS)
run: brew install wxwidgets
if: ${{ matrix.sample == 'CPlusPlusWidgets' && matrix.os == 'macos-latest' }}
- name: Install wxWidgets (Linux)
run: |
sudo apt update
sudo apt-cache search libwxgt*
sudo apt-cache search libgtk*
sudo apt install -y libwxgtk3.2-dev libgtk-3-dev
if: ${{ matrix.sample == 'CPlusPlusWidgets' && matrix.os == 'ubuntu-latest' }}
- name: Install uv
run: |
pip install uv
if: ${{ matrix.sample == 'PythonWXPython' }}
- name: Refresh uv.lock for wxPython
working-directory: samples/${{ matrix.sample }}
run: |
rm uv.lock
uv sync --find-links https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-24.04
if: ${{ matrix.sample == 'PythonWXPython' && matrix.os == 'ubuntu-latest' }}
- name: Setup dotnet
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
6.0.x
8.0.x
9.0.x
if: ${{ startsWith(matrix.sample, 'CSharp') }}
- name: Install VPK
run: dotnet tool install -g vpk
- name: Pack Sample (Windows)
working-directory: samples/${{ matrix.sample }}
run: .\build.bat 1.0.0
if: ${{ matrix.os == 'windows-latest' }}
- name: Pack Sample (Unix)
working-directory: samples/${{ matrix.sample }}
run: |
chmod 755 ./build.sh
./build.sh 1.0.0
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-latest' }}