Fix unnecessary localtime tm struct free call and cleanup #18
Workflow file for this run
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 | |