Skip to content

Simplify more

Simplify more #1362

Workflow file for this run

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/setup-msbuild@v1.1
- 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 TreeSheets\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: "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
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: clone wxWidgets
run: git clone --depth 1 --recurse-submodules https://github.com/wxWidgets/wxWidgets
- name: build wxWidgets
run: |
mkdir -p wxWidgets/build_
cd wxWidgets/build_
../configure --disable-shared --disable-sys-libs --with-osx_cocoa --without-libtiff --enable-universal_binary=x86_64,arm64 CXXFLAGS="-stdlib=libc++" LDFLAGS="-stdlib=libc++" OBJCXXFLAGS="-stdlib=libc++" CC=clang CXX=clang++
make -j4
- name: install wxWidgets
run: |
cd wxWidgets/build_
sudo make install
- name: build TreeSheets
working-directory: osx/TreeSheets
run: |
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $(date +'%Y%m%d%H%M%S')" "TreeSheets/TreeSheets-Info.plist"
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $(date +'%Y.%m.%d')" "TreeSheets/TreeSheets-Info.plist"
xcodebuild -list
xcodebuild -toolchain clang -configuration Release -target TreeSheets -scheme TreeSheets -derivedDataPath build
chmod +x build/Build/Products/Release/TreeSheets.app/Contents/MacOS/TreeSheets
rm -rf build/Build/Products/Release/TreeSheets.app.dSYM
zip -r ../../mac_treesheets.zip build/Build/Products/Release
- name: upload build artifacts
if: github.ref == 'refs/heads/master'
uses: actions/upload-artifact@v4
with:
name: Mac TreeSheets
path: build/Build/Products/Release
- 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"