name: Build Fritzing on Windows on: workflow_dispatch: jobs: build: runs-on: windows-2022 env: VCPKG_DEFAULT_TRIPLET: x64-windows steps: # ── 1. Checkout Fritzing source ────────────────────────────────────── - name: Checkout fritzing-app uses: actions/checkout@v4 with: repository: fritzing/fritzing-app path: fritzing-app - name: Checkout fritzing-parts uses: actions/checkout@v4 with: repository: fritzing/fritzing-parts path: fritzing-parts # ── 2. Setup MSVC 2022 64-bit environment ──────────────────────────── - name: Setup MSVC environment uses: ilammy/msvc-dev-cmd@v1 with: arch: amd64 # ── 3. Install Qt 6.7.3 (latest LTS at time of writing) ───────────── # Arch label for MSVC 2022 / 2019 64-bit is identical - name: Install Qt uses: jurplel/install-qt-action@v4 with: version: '6.7.3' host: 'windows' target: 'desktop' arch: 'win64_msvc2019_64' modules: 'qt5compat' cache: true # ── 4. Install C++ dependencies via vcpkg ──────────────────────────── # vcpkg is pre-installed on windows-2022 runners. # boost headers-only, libgit2-static, quazip, openssl - name: Install dependencies with vcpkg run: | vcpkg install boost-filesystem boost-optional boost-assign ` libgit2 quazip openssl ` --triplet x64-windows shell: pwsh # ── 5. Build libgit2 (vcpkg already handles this, kept for reference) ─ # libgit2 from vcpkg is at the latest stable release automatically. # ── 6. Configure and build Fritzing ───────────────────────────────── - name: Configure Fritzing (qmake) working-directory: fritzing-app run: | qmake phoenix.pro ^ BOOST_PATH="%VCPKG_ROOT%\installed\x64-windows\include" ^ LIBGIT2_PATH="%VCPKG_ROOT%\installed\x64-windows" shell: cmd - name: Build Fritzing (nmake) working-directory: fritzing-app run: nmake release shell: cmd # ── 7. Deploy Qt runtime DLLs next to the executable ──────────────── - name: Deploy Qt (windeployqt) working-directory: fritzing-app/release run: windeployqt Fritzing.exe shell: cmd # ── 8. Upload the finished build as a downloadable artifact ───────── - name: Upload build artifact uses: actions/upload-artifact@v4 with: name: fritzing-windows-x64 path: fritzing-app/release/ retention-days: 14