Suppress MSVC compiler warnings (#8) #21
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: Windows CI | |
on: | |
workflow_dispatch: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
jobs: | |
build: | |
name: Windows CI Build | |
runs-on: windows-latest | |
defaults: | |
run: | |
shell: pwsh | |
env: | |
Configuration: release | |
AppDataTempPath: C:\Users\runneradmin\AppData\Local\Temp | |
SwiftCacheDir: swift-sdk | |
steps: | |
# - name: "Cache Swift" | |
# id: cache-swift-sdk | |
# uses: actions/cache@v4 | |
# env: | |
# cache-name: cache-swift-sdk | |
# with: | |
# path: ${{ env.AppDataTempPath }}\${{ env.SwiftCacheDir }} | |
# key: ${{ runner.os }}-build-${{ env.cache-name }} | |
# - if: ${{ steps.cache-swift-sdk.outputs.cache-hit != 'true' }} | |
# name: "Download Swift" | |
# id: download-swift | |
# env: | |
# SwiftUrl: https://download.swift.org/swift-5.10.1-release/windows10/swift-5.10.1-RELEASE/swift-5.10.1-RELEASE-windows10.exe | |
# SwiftCacheFile: swift-5.10.1-RELEASE-windows10.exe | |
# run: | | |
# New-Item -Path "$env:AppDataTempPath" -Name "$env:SwiftCacheDir" -ItemType "directory" | |
# Invoke-WebRequest -Uri $env:SwiftUrl -outfile "$env:AppDataTempPath\$env:SwiftCacheDir\$env:SwiftCacheFile" | |
# Get-ChildItem "$env:AppDataTempPath\$env:SwiftCacheDir" | |
- name: "Cache Dart SDK" | |
id: cache-dart-sdk | |
uses: actions/cache@v4 | |
env: | |
cache-name: cache-dart-sdk | |
with: | |
path: C:\Users\runneradmin\AppData\Local\Temp\dart-sdk | |
key: ${{ runner.os }}-build-${{ env.cache-name }} | |
- name: "Install Dart" | |
id: install-dart | |
run: | | |
Invoke-Expression -Command "choco install dart-sdk -y --no-progress" | |
Import-Module "$env:ChocolateyInstall/helpers/chocolateyInstaller.psm1" | |
Update-SessionEnvironment | |
Invoke-Expression -Command "dart --version" | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare upload artifact | |
id: prepare-upload-artifact | |
run: | | |
New-Item -Path "$env:RUNNER_TEMP" -Name "upload" -ItemType "directory" | |
Copy-Item "LICENSE" -Destination "$env:RUNNER_TEMP\upload" | |
Copy-Item "README.md" -Destination "$env:RUNNER_TEMP\upload" | |
New-Item -Path "$env:RUNNER_TEMP\upload" -Name "shared" -ItemType "directory" | |
Copy-Item -Path "$env:GITHUB_WORKSPACE\shared\*" -Destination "$env:RUNNER_TEMP\upload\shared" | |
New-Item -Path "$env:RUNNER_TEMP\upload" -Name "bin" -ItemType "directory" | |
- name: "Cache CMake" | |
id: cache-cmake | |
uses: actions/cache@v4 | |
env: | |
cache-name: cache-cmake | |
with: | |
path: ${{ github.workspace }}\c\wsgup\build | |
key: ${{ runner.os }}-build-${{ env.cache-name }} | |
- name: Build C | |
run: | | |
Set-Location -Path "$env:GITHUB_WORKSPACE\c\wsgup" | |
Invoke-Expression -Command "cmake -B build ." | |
Invoke-Expression -Command "cmake --build build --config Release" | |
New-Item -Path "$env:RUNNER_TEMP\upload\bin" -Name "c" -ItemType "directory" | |
Copy-Item "..\README.md" -Destination "$env:RUNNER_TEMP\upload\bin\c" | |
Copy-Item "build\Release\wsgup.exe" -Destination "$env:RUNNER_TEMP\upload\bin\c" | |
- name: "Build C#" | |
run: | | |
Set-Location -Path "$env:GITHUB_WORKSPACE\csharp\wsgup" | |
Invoke-Expression -Command "dotnet build -c Release" | |
Invoke-Expression -Command "dotnet build-server shutdown" | |
New-Item -Path "$env:RUNNER_TEMP\upload\bin" -Name "csharp" -ItemType "directory" | |
Copy-Item "..\README.md" -Destination "$env:RUNNER_TEMP\upload\bin\csharp" | |
Copy-Item -Path "bin\Release\net6.0\*" -Destination "$env:RUNNER_TEMP\upload\bin\csharp" | |
- name: "Build Dart" | |
run: | | |
Set-Location -Path "$env:GITHUB_WORKSPACE\dart\wsgup" | |
New-Item -Path "$env:RUNNER_TEMP\upload\bin" -Name "dart" -ItemType "directory" | |
Copy-Item "..\README.md" -Destination "$env:RUNNER_TEMP\upload\bin\dart" | |
Import-Module "$env:ChocolateyInstall/helpers/chocolateyInstaller.psm1" | |
Update-SessionEnvironment | |
Invoke-Expression -Command "dart pub get" | |
Invoke-Expression -Command "dart compile exe bin\wsgup.dart -o $env:RUNNER_TEMP\upload\bin\dart\wsgup.exe" | |
Invoke-Expression -Command "dart compile aot-snapshot bin\wsgup.dart -o $env:RUNNER_TEMP\upload\bin\dart\wsgup.aot" | |
Invoke-Expression -Command "dart compile jit-snapshot bin\wsgup.dart -o $env:RUNNER_TEMP\upload\bin\dart\wsgup.jit" | |
Invoke-Expression -Command "dart compile js bin\wsgup.dart -o $env:RUNNER_TEMP\upload\bin\dart\wsgup.js" | |
- name: "Build Go" | |
run: | | |
Set-Location -Path "$env:GITHUB_WORKSPACE\go\wsgup" | |
Invoke-Expression -Command 'go build -ldflags "-s -w"' | |
New-Item -Path "$env:RUNNER_TEMP\upload\bin" -Name "go" -ItemType "directory" | |
Copy-Item "..\README.md" -Destination "$env:RUNNER_TEMP\upload\bin\go" | |
Copy-Item "wsgup.exe" -Destination "$env:RUNNER_TEMP\upload\bin\go" | |
- name: "Cache Gradle 8.9 wrapper" | |
id: cache-gradlew | |
uses: actions/cache@v4 | |
env: | |
cache-name: cache-gradlew-v8.9 | |
with: | |
path: C:\Users\runneradmin\.gradle | |
key: ${{ runner.os }}-build-${{ env.cache-name }} | |
- name: "Build Java" | |
run: | | |
Set-Location -Path "$env:GITHUB_WORKSPACE\java\wsgup" | |
Invoke-Expression -Command ".\gradlew build --no-daemon --console=plain" | |
New-Item -Path "$env:RUNNER_TEMP\upload\bin" -Name "java" -ItemType "directory" | |
Copy-Item "..\README.md" -Destination "$env:RUNNER_TEMP\upload\bin\java" | |
Copy-Item -Path "wsgup\build\libs\*" -Destination "$env:RUNNER_TEMP\upload\bin\java" | |
# tar -xvf app\build\distributions\app.tar -C $env:RUNNER_TEMP\upload\bin\java --strip-components=1 | |
- name: "Build JavaScript/Node.js" | |
run: | | |
Set-Location -Path "$env:GITHUB_WORKSPACE\js\wsgup" | |
New-Item -Path "$env:RUNNER_TEMP\upload\bin" -Name "js" -ItemType "directory" | |
Copy-Item "..\README.md" -Destination "$env:RUNNER_TEMP\upload\bin\js" | |
Copy-Item -Path "*" -Destination "$env:RUNNER_TEMP\upload\bin\js" | |
- name: "Build Kotlin" | |
run: | | |
Set-Location -Path "$env:GITHUB_WORKSPACE\kotlin\wsgup" | |
Invoke-Expression -Command ".\gradlew build --no-daemon --console=plain" | |
New-Item -Path "$env:RUNNER_TEMP\upload\bin" -Name "kotlin" -ItemType "directory" | |
Copy-Item "..\README.md" -Destination "$env:RUNNER_TEMP\upload\bin\kotlin" | |
Copy-Item -Path "wsgup\build\libs\*" -Destination "$env:RUNNER_TEMP\upload\bin\kotlin" | |
# tar -xvf wsgup\build\distributions\wsgup.tar -C $env:RUNNER_TEMP\upload\bin\kotlin --strip-components=1 | |
- name: "Build Perl" | |
run: | | |
Set-Location -Path "$env:GITHUB_WORKSPACE\perl\wsgup" | |
New-Item -Path "$env:RUNNER_TEMP\upload\bin" -Name "perl" -ItemType "directory" | |
Copy-Item "..\README.md" -Destination "$env:RUNNER_TEMP\upload\bin\perl" | |
Copy-Item -Path "*" -Destination "$env:RUNNER_TEMP\upload\bin\perl" | |
- name: "Build PHP" | |
run: | | |
Set-Location -Path "$env:GITHUB_WORKSPACE\php\wsgup" | |
New-Item -Path "$env:RUNNER_TEMP\upload\bin" -Name "php" -ItemType "directory" | |
Copy-Item "..\README.md" -Destination "$env:RUNNER_TEMP\upload\bin\php" | |
Copy-Item -Path "*" -Destination "$env:RUNNER_TEMP\upload\bin\php" | |
- name: "Build Python" | |
run: | | |
Set-Location -Path "$env:GITHUB_WORKSPACE\python\wsgup" | |
New-Item -Path "$env:RUNNER_TEMP\upload\bin" -Name "python" -ItemType "directory" | |
Copy-Item "..\README.md" -Destination "$env:RUNNER_TEMP\upload\bin\python" | |
Copy-Item -Path "*" -Destination "$env:RUNNER_TEMP\upload\bin\python" | |
- name: "Build Ruby" | |
run: | | |
Set-Location -Path "$env:GITHUB_WORKSPACE\ruby\wsgup" | |
New-Item -Path "$env:RUNNER_TEMP\upload\bin" -Name "ruby" -ItemType "directory" | |
Copy-Item "..\README.md" -Destination "$env:RUNNER_TEMP\upload\bin\ruby" | |
Copy-Item -Path "*" -Destination "$env:RUNNER_TEMP\upload\bin\ruby" | |
- name: "Build Rust" | |
run: | | |
Set-Location -Path "$env:GITHUB_WORKSPACE\rust\wsgup" | |
New-Item -Path "$env:RUNNER_TEMP\upload\bin" -Name "rust" -ItemType "directory" | |
Copy-Item "..\README.md" -Destination "$env:RUNNER_TEMP\upload\bin\rust" | |
Invoke-Expression -Command "cargo build --release" | |
Copy-Item "target\release\wsgup.exe" -Destination "$env:RUNNER_TEMP\upload\bin\rust" | |
# Runner Windows image does not have Swift pre-installed. | |
- name: "Build Swift" | |
run: | | |
Set-Location -Path "$env:GITHUB_WORKSPACE\swift\wsgup" | |
New-Item -Path "$env:RUNNER_TEMP\upload\bin" -Name "swift" -ItemType "directory" | |
Copy-Item "..\README.md" -Destination "$env:RUNNER_TEMP\upload\bin\swift" | |
# Invoke-Expression -Command "swift build -c release" | |
# Copy-Item ".build\x86_64-unknown-windows-msvc\release\wsgup.exe" -Destination "$env:RUNNER_TEMP\upload\bin\swift" | |
- name: "Build Visual Basic.NET" | |
run: | | |
Set-Location -Path "$env:GITHUB_WORKSPACE\vb\wsgup" | |
Invoke-Expression -Command "dotnet build -c Release" | |
Invoke-Expression -Command "dotnet build-server shutdown" | |
New-Item -Path "$env:RUNNER_TEMP\upload\bin" -Name "vb" -ItemType "directory" | |
Copy-Item "..\README.md" -Destination "$env:RUNNER_TEMP\upload\bin\vb" | |
Copy-Item -Path "bin\Release\net6.0\*" -Destination "$env:RUNNER_TEMP\upload\bin\vb" | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ github.event.repository.name }}-${{ runner.os }}-${{ github.sha }} | |
path: ${{ runner.temp }}\upload | |
if-no-files-found: error | |
retention-days: 1 | |