Build Windows #9
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: 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 |