Skip to content

improve the spacing in the options menu #22

improve the spacing in the options menu

improve the spacing in the options menu #22

Workflow file for this run

name: windows-build
on:
push:
pull_request:
jobs:
build:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
include:
- arch: x64
cmake_platform: x64
configuration: Release
cmake_extra_args: ""
vcpkg_triplet: x64-windows
- arch: x86
cmake_platform: Win32
configuration: Release
cmake_extra_args: -DWITH_ASM=OFF
vcpkg_triplet: x86-windows
steps:
- uses: actions/checkout@v4
- name: Cache vcpkg
uses: actions/cache@v4
with:
path: |
C:\vcpkg\downloads
C:\vcpkg\archives
C:\vcpkg\buildtrees
C:\vcpkg\packages
C:\vcpkg\binarycache
key: ${{ runner.os }}-${{ matrix.arch }}-vcpkg-${{ hashFiles('vcpkg.json', 'vcpkg-configuration.json') }}
- name: Install FFmpeg (vcpkg)
shell: pwsh
run: |
$vcpkgRoot = "C:\vcpkg"
if (-not (Test-Path $vcpkgRoot)) {
git clone https://github.com/microsoft/vcpkg $vcpkgRoot
}
& "$vcpkgRoot\bootstrap-vcpkg.bat"
$env:VCPKG_BINARY_SOURCES = "clear;files,C:\vcpkg\binarycache,readwrite"
Push-Location $env:GITHUB_WORKSPACE
& "$vcpkgRoot\vcpkg.exe" install --triplet ${{ matrix.vcpkg_triplet }}
Pop-Location
- name: Cache CMake deps
uses: actions/cache@v4
with:
path: Projects/VS/_deps
key: ${{ runner.os }}-${{ matrix.arch }}-cmake-deps-${{ hashFiles('CMakeLists.txt') }}
- name: Configure
run: cmake -S . -B Projects/VS -G "Visual Studio 17 2022" -A ${{ matrix.cmake_platform }} ${{ matrix.cmake_extra_args }} -DOPENFODDER_ENABLE_FFMPEG=ON -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=${{ matrix.vcpkg_triplet }}
- name: Build
run: cmake --build Projects/VS --config ${{ matrix.configuration }}
- name: Test
shell: pwsh
run: |
$runDir = "$env:GITHUB_WORKSPACE\Run"
$stashDir = "$env:RUNNER_TEMP\openfodder-runtime"
$ffmpegBin = "$env:GITHUB_WORKSPACE\vcpkg_installed\${{ matrix.vcpkg_triplet }}\bin"
if (-not (Test-Path $ffmpegBin)) {
$ffmpegBin = "C:\vcpkg\installed\${{ matrix.vcpkg_triplet }}\bin"
}
New-Item -ItemType Directory -Path $stashDir -Force | Out-Null
Copy-Item "$runDir\openfodder.exe" -Destination $stashDir -Force -ErrorAction SilentlyContinue
Copy-Item "$runDir\SDL3.dll" -Destination $stashDir -Force -ErrorAction SilentlyContinue
Copy-Item "$runDir\SDL3_mixer.dll" -Destination $stashDir -Force -ErrorAction SilentlyContinue
$dataRepoDir = "$env:RUNNER_TEMP\openfodder-data"
if (Test-Path $dataRepoDir) { Remove-Item $dataRepoDir -Recurse -Force }
git clone --single-branch https://github.com/OpenFodder/data.git $dataRepoDir
if (Test-Path $runDir) { Remove-Item $runDir -Recurse -Force }
New-Item -ItemType Directory -Path $runDir -Force | Out-Null
Copy-Item "$dataRepoDir\*" $runDir -Recurse -Force
Copy-Item "$stashDir\openfodder.exe" -Destination $runDir -Force -ErrorAction SilentlyContinue
Copy-Item "$stashDir\SDL3.dll" -Destination $runDir -Force -ErrorAction SilentlyContinue
Copy-Item "$stashDir\SDL3_mixer.dll" -Destination $runDir -Force -ErrorAction SilentlyContinue
if (Test-Path "$runDir/Tests") { Remove-Item "$runDir/Tests" -Recurse -Force }
git clone https://github.com/OpenFodder/tests.git $runDir/Tests
Copy-Item "$ffmpegBin\avcodec*.dll" -Destination $runDir -Force
Copy-Item "$ffmpegBin\avformat*.dll" -Destination $runDir -Force
Copy-Item "$ffmpegBin\avutil*.dll" -Destination $runDir -Force
Copy-Item "$ffmpegBin\swscale*.dll" -Destination $runDir -Force
Copy-Item "$ffmpegBin\swresample*.dll" -Destination $runDir -Force
Push-Location $runDir
.\openfodder.exe --appveyor --unit-test-headless
if ($LASTEXITCODE -ne 0) {
exit $LASTEXITCODE
}
Pop-Location
- name: Package
shell: pwsh
run: |
$archive = "OpenFodder-${{ matrix.arch }}-${{ matrix.configuration }}-latest.zip"
$ffmpegBin = "$env:GITHUB_WORKSPACE\vcpkg_installed\${{ matrix.vcpkg_triplet }}\bin"
if (-not (Test-Path $ffmpegBin)) {
$ffmpegBin = "C:\vcpkg\installed\${{ matrix.vcpkg_triplet }}\bin"
}
if (-not (Test-Path $ffmpegBin)) {
Write-Error "FFmpeg binaries not found in vcpkg_installed or C:\vcpkg\installed for ${{ matrix.vcpkg_triplet }}."
exit 1
}
$ffmpegDlls = Get-ChildItem $ffmpegBin -Filter *.dll | Where-Object {
$_.Name -match "^(avcodec|avformat|avutil|swscale|swresample)"
} | Select-Object -ExpandProperty FullName
$items = @(
"$env:GITHUB_WORKSPACE\Run\openfodder.exe",
"$env:GITHUB_WORKSPACE\Run\SDL3.dll",
"$env:GITHUB_WORKSPACE\Run\SDL3_mixer.dll",
"$env:GITHUB_WORKSPACE\README.md",
"$env:GITHUB_WORKSPACE\COPYING",
"$env:GITHUB_WORKSPACE\openfodder.ini.example"
) + $ffmpegDlls
if (Test-Path $archive) { Remove-Item $archive -Force }
Compress-Archive -Path $items -DestinationPath $archive
- name: Upload artifact
uses: actions/upload-artifact@v4
id: upload_artifact
with:
name: OpenFodder-${{ matrix.arch }}-${{ matrix.configuration }}-latest
path: OpenFodder-${{ matrix.arch }}-${{ matrix.configuration }}-latest.zip
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION || 'us-east-1' }}
- name: Upload build zip to S3
shell: pwsh
run: |
$zipName = "OpenFodder-${{ matrix.arch }}-${{ matrix.configuration }}-latest.zip"
aws s3 cp "$zipName" "s3://openfodder-builds/$zipName" --acl public-read
- name: Discord notification
if: always() && env.DISCORD_WEBHOOK_URL != ''
shell: pwsh
env:
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
run: |
$status = if ("${{ job.status }}" -eq "success") { "Success" } else { "Failure" }
$color = if ("${{ job.status }}" -eq "success") { 3066993 } else { 15158332 }
$title = "OpenFodder Windows build $status (${{ matrix.arch }})"
$runUrl = "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
$artifactUrl = "https://s3.amazonaws.com/openfodder-builds/OpenFodder-${{ matrix.arch }}-${{ matrix.configuration }}-latest.zip"
$commitMessage = @'
${{ github.event.head_commit.message }}

Check failure on line 153 in .github/workflows/windows-build.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/windows-build.yml

Invalid workflow file

You have an error in your yaml syntax on line 153
'@.Trim()
if (-not $commitMessage) { $commitMessage = @'
${{ github.event.pull_request.title }}
'@.Trim() }
if (-not $commitMessage) { $commitMessage = "N/A" }
$payload = @{
username = "GitHub Actions"
embeds = @(
@{
title = $title
url = $runUrl
color = $color
fields = @(
@{ name = "Commit"; value = "${{ github.sha }}"; inline = $true }
@{ name = "Branch"; value = "${{ github.ref_name }}"; inline = $true }
@{ name = "Config"; value = "${{ matrix.configuration }}"; inline = $true }
@{ name = "Commit Message"; value = $commitMessage; inline = $false }
@{ name = "Download"; value = $artifactUrl; inline = $false }
)
}
)
} | ConvertTo-Json -Depth 5
Invoke-RestMethod -Method Post -Uri $env:DISCORD_WEBHOOK_URL -ContentType "application/json" -Body $payload