Structure folder for platforms #1460
Workflow file for this run
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
name: CI | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
jobs: | |
build-linux: | |
name: Build Linux | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
strategy: | |
matrix: | |
cxx: [g++, clang++] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: apt update | |
run: sudo apt-get -o Acquire::Retries=3 update | |
- name: install opengl | |
run: sudo apt-get -o Acquire::Retries=3 install mesa-common-dev libgl1-mesa-dev libgl1-mesa-glx | |
- name: install gtk | |
run: sudo apt-get -o Acquire::Retries=3 install libgtk-3-dev | |
- name: cmake | |
run: CXX=${{ matrix.cxx }} cmake -S . -B _build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=TreeSheets-relocatable -DTREESHEETS_RELOCATABLE_INSTALLATION=ON | |
- name: build TreeSheets | |
run: cmake --build _build -j4 | |
- name: install files | |
run: cmake --install _build | |
- name: zip | |
run: zip -r linux_treesheets_${{ matrix.cxx }}.zip TreeSheets-relocatable | |
- name: upload build artifacts | |
if: github.ref == 'refs/heads/master' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Linux TreeSheets ${{ matrix.cxx }} | |
path: TreeSheets-relocatable | |
- name: Create release | |
if: github.ref == 'refs/heads/master' | |
uses: ncipollo/release-action@v1 | |
with: | |
tag: ${{ github.run_id }} | |
allowUpdates: true | |
omitBody: true | |
commit: master | |
artifacts: "linux_treesheets_${{ matrix.cxx }}.zip" | |
build-windows: | |
name: Build Windows | |
runs-on: windows-2022 | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Add msbuild to PATH | |
uses: microsoft/[email protected] | |
- name: clone wxWidgets | |
run: | | |
git clone --depth 1 --recurse-submodules https://github.com/wxWidgets/wxWidgets | |
(gc 'wxWidgets\build\msw\wx_setup.props') -replace '<wxReleaseRuntimeLibrary>MultiThreadedDLL</wxReleaseRuntimeLibrary>', '<wxReleaseRuntimeLibrary>MultiThreaded</wxReleaseRuntimeLibrary>' | Out-File -encoding ASCII 'wxWidgets\build\msw\wx_setup.props' | |
- name: build wxWidgets | |
working-directory: wxWidgets | |
run: msbuild.exe build/msw/wx_vc14.sln /p:Configuration=Release /p:Platform=x64 /p:RuntimeLibrary=MultiThreaded | |
- name: build TreeSheets | |
run: | | |
msbuild.exe win\treesheets.sln /p:Configuration=Release /p:Platform=x64 | |
Remove-Item TS\*.pdb | |
Remove-Item TS\*.ipdb | |
Remove-Item TS\*.iobj | |
Compress-Archive -Path TS -DestinationPath windows_treesheets_no_installer.zip | |
- name: upload build artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Windows TreeSheets (no installer) | |
path: TS | |
- name: Create installer | |
uses: joncloud/makensis-action@v4 | |
with: | |
script-file: "win/TS_installer.nsi" | |
arguments: "/V3" | |
- name: upload build artifacts | |
if: github.ref == 'refs/heads/master' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Windows TreeSheets (installer) | |
path: windows_treesheets_setup.exe | |
- name: Create release | |
if: github.ref == 'refs/heads/master' | |
uses: ncipollo/release-action@v1 | |
with: | |
tag: ${{ github.run_id }} | |
allowUpdates: true | |
omitBody: true | |
commit: master | |
artifacts: "windows_treesheets_setup.exe,windows_treesheets_no_installer.zip" | |
build-mac: | |
name: Build Mac | |
runs-on: macos-latest | |
env: | |
minmac: 10.15 | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Prepare Plist | |
run: | | |
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $(date +'%Y%m%d%H%M%S')" platforms/osx/Info.plist | |
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $(date +'%Y.%m.%d')" platforms/osx/Info.plist | |
/usr/libexec/PlistBuddy -c "Set :LSMinimumSystemVersion $minmac" platforms/osx/Info.plist | |
- name: cmake | |
run: cmake -S . -B _build -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET="$minmac" -DCMAKE_INSTALL_PREFIX=macos-bundle | |
- name: Build TreeSheets | |
run: cmake --build _build -j4 | |
- name: Create bundle | |
run: cmake --install _build | |
- name: Zip bundle | |
run: zip -r mac_treesheets.zip macos-bundle | |
- name: Create release | |
if: github.ref == 'refs/heads/master' | |
uses: ncipollo/release-action@v1 | |
with: | |
tag: ${{ github.run_id }} | |
allowUpdates: true | |
omitBody: true | |
commit: master | |
artifacts: "mac_treesheets.zip" |