version: 'openfusion-{branch}-{build}' build_cloud: GCE us-east1-b n2-standard-8 skip_branch_with_pr: true image: - GCP-Windows-VS2019 - GCP-Linux-Ubuntu2004 platform: - x64 configuration: - Release for: - matrix: only: - image: GCP-Linux-Ubuntu2004 install: - sh: sudo apt install libluajit-5.1-dev -y build_script: - ps: | $versions = "104", "728", "1013" foreach ($version in $versions) { Write-Output "Cleaning old output" Invoke-Expression "make clean" if ($LASTEXITCODE -ne "0") { Write-Error "make clean failed for version $version" -ErrorAction Stop } Write-Output "Building version $version" Invoke-Expression "make -j8 PROTOCOL_VERSION=$version" if ($LASTEXITCODE -ne "0") { Write-Error "make failed for version $version" -ErrorAction Stop } Rename-Item -Path "bin/fusion" -newName "$version-fusion" Write-Output "Built version $version" } Copy-Item -Path "sql" -Destination "bin/sql" -Recurse Copy-Item -Path "config.ini" -Destination "bin" artifacts: - path: bin name: ubuntu20_04-bin-x64 type: zip - matrix: only: - image: GCP-Windows-VS2019 install: - cmd: vcpkg install sqlite3:x64-windows - cmd: vcpkg install luajit:x64-windows - cmd: vcpkg integrate install build_script: - ps: | $versions = "104", "728", "1013" $configurations = "Release" # "Debug" builds are disabled, since we don't really need them # AppVeyor uses VS2019 Community $vsPath = "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community" Import-Module "$vsPath\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" Enter-VsDevShell -VsInstallPath $vsPath -SkipAutomaticLocation foreach ($version in $versions) { if (Test-Path -LiteralPath "build") { Remove-Item "build" -Recurse Write-Output "Deleted existing build folder" } Invoke-Expression "cmake -B build -DPROTOCOL_VERSION=$version" if ($LASTEXITCODE -ne "0") { Write-Error "cmake generation failed for version $version" -ErrorAction Stop } Write-Output "Generated build files for version $version" foreach ($configuration in $configurations) { Write-Output "Building version $version $configuration" Invoke-Expression "msbuild build\OpenFusion.sln /maxcpucount:8 /p:BuildInParallel=true /p:CL_MPCount=8 /p:UseMultiToolTask=true /p:Configuration=$configuration" if ($LASTEXITCODE -ne "0") { Write-Error "msbuild build failed for version $version" -ErrorAction Stop } Rename-Item -Path "bin/$configuration" -newName "$version-$configuration" Write-Output "Built version $version $configuration" Copy-Item -Path "sql" -Destination "bin/$version-$configuration/sql" -Recurse Copy-Item -Path "config.ini" -Destination "bin/$version-$configuration" } } artifacts: - path: bin name: windows-vs2019-bin-x64 type: zip