Build Windows Installer in CI #30
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: main CI | |
on: | |
workflow_dispatch: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
# add a cron job to run every month -- this project is not very active, at least ensure there's a valid CI build every month | |
# this is also useful to check if something breaks e.g. due to infrastructure changes (e.g. Ubuntu/Windows OS) | |
schedule: | |
- cron: '0 0 1 * *' | |
jobs: | |
LinuxBuild: | |
runs-on: ubuntu-latest | |
steps: | |
# install deps | |
- uses: actions/checkout@v4 | |
- name: install debian-packaged dependencies | |
run: sudo apt install -y libwxgtk3.2-dev libboost-graph1.83.0 libboost-serialization1.83.0 libboost-all-dev | |
# build | |
- name: build netlist-viewer | |
run: cd NetlistViewer/build/linux && make | |
# save binary | |
- name: save built binary | |
uses: actions/upload-artifact@v4 | |
with: | |
name: NetlistViewer, Linux x86_64 | |
path: NetlistViewer/build/linux/NetlistViewer | |
WindowsBuild: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@v2 | |
# setup vcpkg & msbuild tools | |
# NOTE: no packages/dependencies are installed at this time -- msbuild will use vcpkg to download&build dependencies | |
# specified in the vcpkg.json during the build step below. This happens because the VisualStudio solution has | |
# the 'VcpkgEnableManifest' property set to True | |
- name: Setup a new (or from cache) vcpkg (and does not build any package) | |
uses: lukka/run-vcpkg@v11.5 | |
with: | |
# as suggested, we pin the version of "vcpkg" to a specific hash (23rd March 2025) to ensure reproducible builds | |
vcpkgGitCommitId: a76b33254af4092ff45f08ec5adcd9fd06468b43 | |
- name: Integrate vcpkg | |
run: vcpkg integrate install | |
# # this is going to be veeeeeeeeeeery long | |
# - name: Build dependencies | |
# run: vcpkg install | |
# # build | |
# - name: Build netlist-viewer | |
# run: msbuild NetlistViewer\build\win\netlist_viewer_vs2022.vcxproj -t:rebuild -property:Configuration=Release -property:Platform=x64 | |
# # save the whole folder containing the binary and DLLs | |
# - name: Save built binaries | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: NetlistViewer, Windows x86_64 | |
# path: NetlistViewer/build/win/x64/Release/ | |
- name: Install NSIS | |
run: | | |
iwr -useb get.scoop.sh -outfile 'install.ps1' | |
.\install.ps1 -RunAsAdmin | |
scoop update | |
scoop bucket add extras | |
scoop install nsis | |
- name: Print NSIS version | |
run: makensis -VERSION | |
- name: Print NSIS compile flags | |
run: makensis -HDRINFO |