[unicode] wide config.reg + salmon.exe launch for non-ASCII install p… #60
Workflow file for this run
This file contains hidden or 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: Release Build | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| workflow_dispatch: | |
| permissions: | |
| contents: write | |
| jobs: | |
| build: | |
| name: Build ${{ matrix.arch }} | |
| runs-on: windows-2022 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - arch: x64 | |
| cmake_arch: x64 | |
| - arch: x86 | |
| cmake_arch: Win32 | |
| - arch: ARM64 | |
| cmake_arch: ARM64 | |
| defaults: | |
| run: | |
| shell: pwsh | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Configure CMake (${{ matrix.arch }}) | |
| run: cmake -B build -A ${{ matrix.cmake_arch }} -DSAL_UNDER_CI=ON -DSAL_BUILD_DEMOPLUG=OFF | |
| - name: Build RelWithDebInfo | |
| run: cmake --build build --config RelWithDebInfo --target populate -j | |
| - name: Build host translator (cross-architecture language pack support) | |
| if: matrix.arch == 'ARM64' | |
| run: | | |
| cmake -B build-host -A x64 -DSAL_UNDER_CI=ON -DSAL_BUILD_DEMOPLUG=OFF | |
| cmake --build build-host --config RelWithDebInfo --target translator -j | |
| - name: Build language packs | |
| run: | | |
| $splat = @{ | |
| BuildRoot = "build/out/sally/RelWithDebInfo_${{ matrix.arch }}" | |
| SkipValidation = $true | |
| AllowSeedRejections = $true | |
| } | |
| if ('${{ matrix.arch }}' -eq 'ARM64') { | |
| $splat['TranslatorExe'] = 'build-host/out/sally/RelWithDebInfo_x64/utils/translator.exe' | |
| } | |
| & .\tools\localization\build_language_packs.ps1 @splat | |
| - name: Create runtime zip and collect symbols | |
| run: | | |
| $version = "${{ github.ref_name }}" | |
| $outputRoot = "build/out/sally/RelWithDebInfo_${{ matrix.arch }}" | |
| $runtimeDir = Join-Path $env:RUNNER_TEMP "sally-runtime-${{ matrix.arch }}" | |
| $pdbDir = Join-Path $PWD "pdb-${{ matrix.arch }}" | |
| Remove-Item -Recurse -Force $runtimeDir,$pdbDir -ErrorAction SilentlyContinue | |
| New-Item -ItemType Directory -Path $runtimeDir,$pdbDir | Out-Null | |
| Copy-Item -Path "$outputRoot/*" -Destination $runtimeDir -Recurse -Force | |
| # Collect symbols into a dedicated folder and remove them from runtime package. | |
| Get-ChildItem -Path $runtimeDir -Recurse -File -Filter *.pdb | ForEach-Object { | |
| $relative = $_.FullName.Substring($runtimeDir.Length).TrimStart('\') | |
| $dest = Join-Path $pdbDir $relative | |
| New-Item -ItemType Directory -Path (Split-Path -Parent $dest) -Force | Out-Null | |
| Copy-Item -Path $_.FullName -Destination $dest -Force | |
| Remove-Item -Path $_.FullName -Force | |
| } | |
| $runtimeZip = "Sally-$version-${{ matrix.arch }}.zip" | |
| Compress-Archive -Path "$runtimeDir/*" -DestinationPath $runtimeZip | |
| Write-Host "Created runtime package: $runtimeZip" | |
| Write-Host "Collected symbols in: $pdbDir" | |
| - name: Create translator workspace zip | |
| if: matrix.arch == 'x64' | |
| run: | | |
| $version = "${{ github.ref_name }}" | |
| $outputRoot = "build/out/sally/RelWithDebInfo_${{ matrix.arch }}" | |
| $workspaceDir = Join-Path $env:RUNNER_TEMP "sally-translator-workspace" | |
| $workspaceToolsDir = Join-Path $workspaceDir "tools\localization" | |
| $workspaceDocDir = Join-Path $workspaceDir "doc" | |
| Remove-Item -Recurse -Force $workspaceDir -ErrorAction SilentlyContinue | |
| & .\tools\localization\prepare_translation_workspace.ps1 ` | |
| -BuildRoot $outputRoot ` | |
| -OutputDir $workspaceDir ` | |
| -ImportArchives ` | |
| -Force | |
| New-Item -ItemType Directory -Path $workspaceToolsDir,$workspaceDocDir -Force | Out-Null | |
| Copy-Item -Path .\tools\localization\*.ps1 -Destination $workspaceToolsDir -Force | |
| Copy-Item -Path .\doc\LOCALIZATION.md -Destination $workspaceDocDir -Force | |
| $workspaceZip = "Sally-$version-translator-workspace.zip" | |
| Compress-Archive -Path "$workspaceDir\*" -DestinationPath $workspaceZip | |
| Write-Host "Created translator workspace package: $workspaceZip" | |
| - name: Upload translator workspace failure artifact | |
| if: failure() && matrix.arch == 'x64' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: Sally-translator-workspace-failure | |
| path: ${{ runner.temp }}/sally-translator-workspace/ | |
| if-no-files-found: ignore | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: Sally-${{ matrix.arch }} | |
| path: | | |
| Sally-${{ github.ref_name }}-${{ matrix.arch }}.zip | |
| pdb-${{ matrix.arch }}/ | |
| - name: Upload translator workspace artifact | |
| if: matrix.arch == 'x64' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: Sally-translator-workspace | |
| path: Sally-${{ github.ref_name }}-translator-workspace.zip | |
| release: | |
| name: Create Release | |
| needs: build | |
| runs-on: ubuntu-latest | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| steps: | |
| - name: Download all artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: artifacts | |
| - name: List artifacts | |
| run: find artifacts -type f -name "*.zip" | |
| - name: Create consolidated symbols zip | |
| run: | | |
| version="${{ github.ref_name }}" | |
| symbols_root="artifacts/symbols" | |
| rm -rf "$symbols_root" | |
| mkdir -p "$symbols_root" | |
| for arch in x64 x86 ARM64; do | |
| src="$(find artifacts -type d -name "pdb-$arch" | head -n 1)" | |
| if [ -n "$src" ]; then | |
| mkdir -p "$symbols_root/$arch" | |
| cp -a "$src"/. "$symbols_root/$arch"/ | |
| else | |
| echo "No symbol directory found for $arch" | |
| fi | |
| done | |
| if find "$symbols_root" -type f -name "*.pdb" | grep -q .; then | |
| (cd "$symbols_root" && zip -r "../Sally-${version}-pdb.zip" .) | |
| echo "Created artifacts/Sally-${version}-pdb.zip" | |
| else | |
| echo "No PDB files found across artifacts; skipping consolidated symbols zip." | |
| fi | |
| - name: List packaged zips | |
| run: find artifacts -type f -name "*.zip" | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: artifacts/**/*.zip | |
| generate_release_notes: true | |
| draft: true | |
| prerelease: false |