build windows installers #17
Workflow file for this run
This file contains hidden or 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: build | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| linux-x86_64: | |
| name: build (linux-x86_64) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: install dependencies | |
| run: | | |
| sudo apt update && sudo apt install -y build-essential cmake ninja-build libudev-dev libavahi-compat-libdnssd-dev | |
| - name: configure | |
| run: | | |
| cmake -B build -S . -G Ninja -DCMAKE_BUILD_TYPE=Release | |
| - name: build | |
| run: | | |
| cmake --build build | |
| linux-arm64: | |
| name: build (linux-arm64) | |
| runs-on: ubuntu-24.04-arm | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: install dependencies | |
| run: | | |
| sudo apt update && sudo apt install -y build-essential cmake ninja-build libudev-dev libavahi-compat-libdnssd-dev | |
| - name: configure | |
| run: | | |
| cmake -B build -S . -G Ninja -DCMAKE_BUILD_TYPE=Release | |
| - name: build | |
| run: | | |
| cmake --build build | |
| macos: | |
| name: build (macos-universal) | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: configure | |
| run: | | |
| cmake -B build -S . -G Ninja -DCMAKE_BUILD_TYPE=Release | |
| - name: build | |
| run: | | |
| cmake --build build | |
| windows-x86_64: | |
| name: build (windows-x86_64) | |
| runs-on: windows-latest | |
| defaults: | |
| run: | |
| shell: msys2 {0} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: install nsis | |
| shell: cmd | |
| run: choco install nsis -y | |
| - name: install dependencies | |
| uses: msys2/setup-msys2@v2 | |
| with: | |
| msystem: CLANG64 | |
| update: true | |
| install: >- | |
| mingw-w64-clang-x86_64-toolchain | |
| mingw-w64-clang-x86_64-cmake | |
| mingw-w64-clang-x86_64-ninja | |
| - name: configure | |
| run: | | |
| cmake -B build -S . -G Ninja -DCMAKE_BUILD_TYPE=Release | |
| - name: build | |
| run: | | |
| cmake --build build | |
| - name: build installer | |
| shell: cmd | |
| run: | | |
| call refreshenv | |
| makensis /DFILE_SRC=build\bin /DARCH=x86_64 installers\windows\installer.nsi | |
| - name: upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: serialosc-windows-x86_64 | |
| path: installers/windows/serialosc-*.exe | |
| if-no-files-found: warn | |
| windows-arm64: | |
| name: build (windows-arm64) | |
| runs-on: windows-11-arm | |
| defaults: | |
| run: | |
| shell: msys2 {0} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: install nsis | |
| shell: cmd | |
| run: choco install nsis -y | |
| - name: install dependencies | |
| uses: msys2/setup-msys2@v2 | |
| with: | |
| msystem: CLANGARM64 | |
| update: true | |
| install: >- | |
| mingw-w64-clang-aarch64-toolchain | |
| mingw-w64-clang-aarch64-cmake | |
| mingw-w64-clang-aarch64-ninja | |
| - name: configure | |
| run: | | |
| cmake -B build -S . -G Ninja -DCMAKE_BUILD_TYPE=Release | |
| - name: build | |
| run: | | |
| cmake --build build | |
| - name: build installer | |
| shell: cmd | |
| run: | | |
| call refreshenv | |
| makensis /DFILE_SRC=build\bin /DARCH=arm64 installers\windows\installer.nsi | |
| - name: upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: serialosc-windows-arm64 | |
| path: installers/windows/serialosc-*.exe | |
| if-no-files-found: warn |