Skip to content

Build Windows

Build Windows #5

Workflow file for this run

name: Build Windows
on:
workflow_dispatch:
jobs:
build-windows:
runs-on: windows-latest
strategy:
matrix:
include:
- QT_ARCH: 'win64_msvc2017_64'
PLATFORM: 'amd64'
PLATFORM_ALT_NAME: 'x64'
OUTPUT_BIN_DIR: 'bin64'
- QT_ARCH: 'win32_msvc2017'
PLATFORM: 'x86'
PLATFORM_ALT_NAME: 'x86'
OUTPUT_BIN_DIR: 'bin32'
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Install Visual Studio 2017 Build Tools
- name: Install Visual Studio 2017 Build Tools
shell: powershell
run: |
# Download the VS 2017 Build Tools installer
Invoke-WebRequest -Uri "https://aka.ms/vs/15/release/vs_buildtools.exe" -OutFile "$env:TEMP\vs_buildtools.exe"
# Install the Build Tools with necessary workloads and components
& "$env:TEMP\vs_buildtools.exe" --quiet --wait --norestart --nocache `
--installPath "C:\BuildTools" `
--add Microsoft.VisualStudio.Workload.VCTools `
--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 `
--add Microsoft.VisualStudio.Component.Windows10SDK.17763 `
--includeRecommended
# Wait for the installation to complete
Start-Sleep -Seconds 10
- name: Install Qt (64-bit & 32-bit)
uses: jurplel/install-qt-action@v3
with:
aqtversion: '==3.1.*'
version: '5.12.12'
host: 'windows'
target: 'desktop'
arch: '${{ matrix.QT_ARCH }}'
# Mimic the AppVeyor "clone_folder" setting by moving the repo to C:\dev\labrador
- name: Move repository to C:\dev\labrador
shell: cmd
run: |
mkdir C:\dev\labrador
xcopy /s /e /i /y "%GITHUB_WORKSPACE%\*" C:\dev\labrador\
- name: Setup Visual Studio environment and build
shell: cmd
run: |
cd C:\dev\labrador
REM Initialize the VS2017 Build Tools environment
call "C:\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.PLATFORM }}
REM Add Qt to the path after VS environment is configured
set "PATH=C:\Qt\5.12.12\${{ matrix.QT_ARCH }}\bin;%PATH%"
cd Desktop_Interface
REM Get short git hash
for /f "delims=" %%i in ('git rev-parse --short HEAD') do set GIT_HASH_SHORT=%%i
qmake CONFIG+=release DEFINES+=GIT_HASH_SHORT=%GIT_HASH_SHORT%
nmake
- name: Post-build steps
shell: cmd
run: |
cd C:\dev\labrador\Desktop_Interface
windeployqt bin\Labrador.exe
xcopy /i /s /y "build_win\fftw\${{ matrix.PLATFORM_ALT_NAME }}"\libfftw3-3.dll bin
del bin\vcredist*.exe
del bin\*.pdb
- name: Upload Windows artifact
uses: actions/upload-artifact@v4
with:
name: Labrador_${{ matrix.PLATFORM }}
path: C:\dev\labrador\Desktop_Interface\bin
- name: Publish update to Labrador-win-builder
if: success()
shell: pwsh
env:
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
OUTPUT_BIN_DIR: ${{ matrix.OUTPUT_BIN_DIR }}
run: |
cd C:\dev
git clone --depth 1 https://github.com/espotek-org/Labrador-win-builder
cd Labrador-win-builder
git config --global credential.helper store
Add-Content "$env:USERPROFILE\.git-credentials" "https://$env:ACCESS_TOKEN:[email protected]`n"
git config --global user.email "[email protected]"
git config --global user.name "Chris Esposito"
git checkout master
xcopy /i /s /y C:\dev\labrador\Desktop_Interface\bin $env:OUTPUT_BIN_DIR
git add $env:OUTPUT_BIN_DIR
git commit -a -m "Automatic update from main Labrador repository"
git push