Skip to content

20240819 add openssl dlls windows ci #24

20240819 add openssl dlls windows ci

20240819 add openssl dlls windows ci #24

Workflow file for this run

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"
Copy-Item -Path "C:\Program Files\OpenSSL\bin\*.dll" -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