Skip to content

Build Windows

Build Windows #9

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: 'x64'
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 Qt (64-bit & 32-bit)
- name: Install Qt
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\
# Setup MSVC Developer Command Prompt
- name: Setup MSVC Developer Command Prompt
uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{ matrix.PLATFORM }}
toolset: 14.16 # This corresponds to Visual Studio 2017
# Debug step to check environment
- name: Debug environment
shell: cmd
run: |
echo "PATH=%PATH%"
where cl
where nmake
where qmake
# Build step
- name: Build Labrador
shell: cmd
run: |
cd C:\dev\labrador\Desktop_Interface
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