Skip to content

Commit c7f3670

Browse files
committed
Merge branch 'only-add-arm'
2 parents 2800471 + 5f5f746 commit c7f3670

35 files changed

Lines changed: 488 additions & 995 deletions

.github/workflows/continuous.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
2+
name: continuous
3+
4+
on: [push]
5+
6+
jobs:
7+
windows-2025-vs2026:
8+
name: windows-2025-vs2026
9+
runs-on: windows-2025-vs2026
10+
steps:
11+
- uses: actions/checkout@v6
12+
with:
13+
fetch-depth: 0
14+
- uses: actions/setup-dotnet@v5
15+
with:
16+
dotnet-version: '3.1.x'
17+
18+
- name: 'Cache: .nuke/temp, ~/.nuget/packages'
19+
uses: actions/cache@v4
20+
with:
21+
path: |
22+
.nuke/temp
23+
~/.nuget/packages
24+
key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj', '**/Directory.Packages.props') }}
25+
- name: 'Run: Pack'
26+
run: ./build.cmd Pack
27+
- name: 'Publish: artifacts'
28+
uses: actions/upload-artifact@v5
29+
with:
30+
name: artifacts
31+
path: artifacts

.nuke

Lines changed: 0 additions & 1 deletion
This file was deleted.

.nuke/build.schema.json

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-04/schema#",
3+
"definitions": {
4+
"Host": {
5+
"type": "string",
6+
"enum": [
7+
"AppVeyor",
8+
"AzurePipelines",
9+
"Bamboo",
10+
"Bitbucket",
11+
"Bitrise",
12+
"GitHubActions",
13+
"GitLab",
14+
"Jenkins",
15+
"Rider",
16+
"SpaceAutomation",
17+
"TeamCity",
18+
"Terminal",
19+
"TravisCI",
20+
"VisualStudio",
21+
"VSCode"
22+
]
23+
},
24+
"ExecutableTarget": {
25+
"type": "string",
26+
"enum": [
27+
"Build",
28+
"Clean",
29+
"Compile",
30+
"DistBuild",
31+
"Pack",
32+
"Push",
33+
"Restore",
34+
"UploadArtifacts"
35+
]
36+
},
37+
"Verbosity": {
38+
"type": "string",
39+
"description": "",
40+
"enum": [
41+
"Verbose",
42+
"Normal",
43+
"Minimal",
44+
"Quiet"
45+
]
46+
},
47+
"NukeBuild": {
48+
"properties": {
49+
"Continue": {
50+
"type": "boolean",
51+
"description": "Indicates to continue a previously failed build attempt"
52+
},
53+
"Help": {
54+
"type": "boolean",
55+
"description": "Shows the help text for this build assembly"
56+
},
57+
"Host": {
58+
"description": "Host for execution. Default is 'automatic'",
59+
"$ref": "#/definitions/Host"
60+
},
61+
"NoLogo": {
62+
"type": "boolean",
63+
"description": "Disables displaying the NUKE logo"
64+
},
65+
"Partition": {
66+
"type": "string",
67+
"description": "Partition to use on CI"
68+
},
69+
"Plan": {
70+
"type": "boolean",
71+
"description": "Shows the execution plan (HTML)"
72+
},
73+
"Profile": {
74+
"type": "array",
75+
"description": "Defines the profiles to load",
76+
"items": {
77+
"type": "string"
78+
}
79+
},
80+
"Root": {
81+
"type": "string",
82+
"description": "Root directory during build execution"
83+
},
84+
"Skip": {
85+
"type": "array",
86+
"description": "List of targets to be skipped. Empty list skips all dependencies",
87+
"items": {
88+
"$ref": "#/definitions/ExecutableTarget"
89+
}
90+
},
91+
"Target": {
92+
"type": "array",
93+
"description": "List of targets to be invoked. Default is '{default_target}'",
94+
"items": {
95+
"$ref": "#/definitions/ExecutableTarget"
96+
}
97+
},
98+
"Verbosity": {
99+
"description": "Logging verbosity during build execution. Default is 'Normal'",
100+
"$ref": "#/definitions/Verbosity"
101+
}
102+
}
103+
}
104+
},
105+
"allOf": [
106+
{
107+
"properties": {
108+
"Configuration": {
109+
"type": "string",
110+
"description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)",
111+
"enum": [
112+
"Debug",
113+
"Release"
114+
]
115+
},
116+
"FeedUri": {
117+
"type": "string"
118+
},
119+
"NuGetApiKey": {
120+
"type": "string"
121+
},
122+
"Solution": {
123+
"type": "string",
124+
"description": "Path to a solution file that is automatically loaded"
125+
}
126+
}
127+
},
128+
{
129+
"$ref": "#/definitions/NukeBuild"
130+
}
131+
]
132+
}

.nuke/parameters.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"$schema": "build.schema.json",
3+
"Solution": "AlphaVSS.sln"
4+
}

AlphaVSS.sln

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio Version 16
4-
VisualStudioVersion = 16.0.29505.145
3+
# Visual Studio Version 18
4+
VisualStudioVersion = 18.4.11620.152 stable
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2D2D5045-46A9-490F-A79D-78B261C35231}"
77
ProjectSection(SolutionItems) = preProject
@@ -26,62 +26,89 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "_build", "build\_build.cspr
2626
EndProject
2727
Global
2828
GlobalSection(SolutionConfigurationPlatforms) = preSolution
29+
core31|ARM64 = core31|ARM64
2930
core31|x64 = core31|x64
3031
core31|x86 = core31|x86
32+
core31d|ARM64 = core31d|ARM64
3133
core31d|x64 = core31d|x64
3234
core31d|x86 = core31d|x86
35+
net45|ARM64 = net45|ARM64
3336
net45|x64 = net45|x64
3437
net45|x86 = net45|x86
38+
net45d|ARM64 = net45d|ARM64
3539
net45d|x64 = net45d|x64
3640
net45d|x86 = net45d|x86
3741
EndGlobalSection
3842
GlobalSection(ProjectConfigurationPlatforms) = postSolution
43+
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.core31|ARM64.ActiveCfg = Release|Any CPU
44+
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.core31|ARM64.Build.0 = Release|Any CPU
3945
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.core31|x64.ActiveCfg = Release|Any CPU
4046
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.core31|x64.Build.0 = Release|Any CPU
4147
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.core31|x86.ActiveCfg = Release|Any CPU
4248
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.core31|x86.Build.0 = Release|Any CPU
49+
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.core31d|ARM64.ActiveCfg = Debug|Any CPU
50+
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.core31d|ARM64.Build.0 = Debug|Any CPU
4351
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.core31d|x64.ActiveCfg = Debug|Any CPU
4452
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.core31d|x64.Build.0 = Debug|Any CPU
4553
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.core31d|x86.ActiveCfg = Debug|Any CPU
4654
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.core31d|x86.Build.0 = Debug|Any CPU
55+
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.net45|ARM64.ActiveCfg = Debug|Any CPU
56+
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.net45|ARM64.Build.0 = Debug|Any CPU
4757
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.net45|x64.ActiveCfg = Release|Any CPU
4858
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.net45|x64.Build.0 = Release|Any CPU
4959
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.net45|x86.ActiveCfg = Release|Any CPU
5060
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.net45|x86.Build.0 = Release|Any CPU
61+
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.net45d|ARM64.ActiveCfg = Debug|Any CPU
62+
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.net45d|ARM64.Build.0 = Debug|Any CPU
5163
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.net45d|x64.ActiveCfg = Debug|Any CPU
5264
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.net45d|x64.Build.0 = Debug|Any CPU
5365
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.net45d|x86.ActiveCfg = Debug|Any CPU
5466
{2276E222-6841-4DA9-B5C9-549E9ADB33BE}.net45d|x86.Build.0 = Debug|Any CPU
67+
{3A977469-6361-469C-B180-5180CD9A15B4}.core31|ARM64.ActiveCfg = core31|ARM64
68+
{3A977469-6361-469C-B180-5180CD9A15B4}.core31|ARM64.Build.0 = core31|ARM64
5569
{3A977469-6361-469C-B180-5180CD9A15B4}.core31|x64.ActiveCfg = core31|x64
5670
{3A977469-6361-469C-B180-5180CD9A15B4}.core31|x64.Build.0 = core31|x64
5771
{3A977469-6361-469C-B180-5180CD9A15B4}.core31|x86.ActiveCfg = core31|Win32
5872
{3A977469-6361-469C-B180-5180CD9A15B4}.core31|x86.Build.0 = core31|Win32
73+
{3A977469-6361-469C-B180-5180CD9A15B4}.core31d|ARM64.ActiveCfg = core31d|ARM64
74+
{3A977469-6361-469C-B180-5180CD9A15B4}.core31d|ARM64.Build.0 = core31d|ARM64
5975
{3A977469-6361-469C-B180-5180CD9A15B4}.core31d|x64.ActiveCfg = core31d|x64
6076
{3A977469-6361-469C-B180-5180CD9A15B4}.core31d|x64.Build.0 = core31d|x64
6177
{3A977469-6361-469C-B180-5180CD9A15B4}.core31d|x86.ActiveCfg = core31d|Win32
6278
{3A977469-6361-469C-B180-5180CD9A15B4}.core31d|x86.Build.0 = core31d|Win32
79+
{3A977469-6361-469C-B180-5180CD9A15B4}.net45|ARM64.ActiveCfg = net45|ARM64
80+
{3A977469-6361-469C-B180-5180CD9A15B4}.net45|ARM64.Build.0 = net45|ARM64
6381
{3A977469-6361-469C-B180-5180CD9A15B4}.net45|x64.ActiveCfg = net45|x64
6482
{3A977469-6361-469C-B180-5180CD9A15B4}.net45|x64.Build.0 = net45|x64
6583
{3A977469-6361-469C-B180-5180CD9A15B4}.net45|x86.ActiveCfg = net45|Win32
6684
{3A977469-6361-469C-B180-5180CD9A15B4}.net45|x86.Build.0 = net45|Win32
85+
{3A977469-6361-469C-B180-5180CD9A15B4}.net45d|ARM64.ActiveCfg = net45d|ARM64
86+
{3A977469-6361-469C-B180-5180CD9A15B4}.net45d|ARM64.Build.0 = net45d|ARM64
6787
{3A977469-6361-469C-B180-5180CD9A15B4}.net45d|x64.ActiveCfg = net45d|x64
6888
{3A977469-6361-469C-B180-5180CD9A15B4}.net45d|x64.Build.0 = net45d|x64
6989
{3A977469-6361-469C-B180-5180CD9A15B4}.net45d|x86.ActiveCfg = net45d|Win32
7090
{3A977469-6361-469C-B180-5180CD9A15B4}.net45d|x86.Build.0 = net45d|Win32
91+
{8FFBC249-EDAC-40EA-84A4-FCB66D579A1A}.core31|ARM64.ActiveCfg = Release|Any CPU
7192
{8FFBC249-EDAC-40EA-84A4-FCB66D579A1A}.core31|x64.ActiveCfg = Debug|Any CPU
7293
{8FFBC249-EDAC-40EA-84A4-FCB66D579A1A}.core31|x86.ActiveCfg = Debug|Any CPU
94+
{8FFBC249-EDAC-40EA-84A4-FCB66D579A1A}.core31d|ARM64.ActiveCfg = Debug|Any CPU
95+
{8FFBC249-EDAC-40EA-84A4-FCB66D579A1A}.core31d|ARM64.Build.0 = Debug|Any CPU
7396
{8FFBC249-EDAC-40EA-84A4-FCB66D579A1A}.core31d|x64.ActiveCfg = Debug|Any CPU
7497
{8FFBC249-EDAC-40EA-84A4-FCB66D579A1A}.core31d|x86.ActiveCfg = Debug|Any CPU
98+
{8FFBC249-EDAC-40EA-84A4-FCB66D579A1A}.net45|ARM64.ActiveCfg = Debug|Any CPU
99+
{8FFBC249-EDAC-40EA-84A4-FCB66D579A1A}.net45|ARM64.Build.0 = Debug|Any CPU
75100
{8FFBC249-EDAC-40EA-84A4-FCB66D579A1A}.net45|x64.ActiveCfg = Debug|Any CPU
76101
{8FFBC249-EDAC-40EA-84A4-FCB66D579A1A}.net45|x86.ActiveCfg = Debug|Any CPU
102+
{8FFBC249-EDAC-40EA-84A4-FCB66D579A1A}.net45d|ARM64.ActiveCfg = Debug|Any CPU
103+
{8FFBC249-EDAC-40EA-84A4-FCB66D579A1A}.net45d|ARM64.Build.0 = Debug|Any CPU
77104
{8FFBC249-EDAC-40EA-84A4-FCB66D579A1A}.net45d|x64.ActiveCfg = Debug|Any CPU
78105
{8FFBC249-EDAC-40EA-84A4-FCB66D579A1A}.net45d|x86.ActiveCfg = Debug|Any CPU
79106
EndGlobalSection
80107
GlobalSection(SolutionProperties) = preSolution
81108
HideSolutionNode = FALSE
82109
EndGlobalSection
83110
GlobalSection(ExtensibilityGlobals) = postSolution
84-
VisualSVNWorkingCopyRoot = ..\..
85111
SolutionGuid = {ECF0CB01-39FE-41E9-A5AE-BD7D5C76530A}
112+
VisualSVNWorkingCopyRoot = ..\..
86113
EndGlobalSection
87114
EndGlobal

build.cmd

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
:; set -eo pipefail
2+
:; SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)
3+
:; ${SCRIPT_DIR}/build.sh "$@"
4+
:; exit $?
5+
6+
@ECHO OFF
7+
powershell -ExecutionPolicy ByPass -NoProfile -File "%~dp0build.ps1" %*

build.ps1

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,22 @@ Param(
66

77
Write-Output "PowerShell $($PSVersionTable.PSEdition) version $($PSVersionTable.PSVersion)"
88

9-
Set-StrictMode -Version 2.0; $ErrorActionPreference = "Stop"; $ConfirmPreference = "None"; trap { exit 1 }
9+
Set-StrictMode -Version 2.0; $ErrorActionPreference = "Stop"; $ConfirmPreference = "None"; trap { Write-Error $_ -ErrorAction Continue; exit 1 }
1010
$PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent
1111

1212
###########################################################################
1313
# CONFIGURATION
1414
###########################################################################
1515

1616
$BuildProjectFile = "$PSScriptRoot\build\_build.csproj"
17-
$TempDirectory = "$PSScriptRoot\\.tmp"
17+
$TempDirectory = "$PSScriptRoot\\.nuke\temp"
1818

1919
$DotNetGlobalFile = "$PSScriptRoot\\global.json"
20-
$DotNetInstallUrl = "https://raw.githubusercontent.com/dotnet/cli/master/scripts/obtain/dotnet-install.ps1"
21-
$DotNetChannel = "Current"
20+
$DotNetInstallUrl = "https://dot.net/v1/dotnet-install.ps1"
21+
$DotNetChannel = "STS"
2222

23-
$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = 1
2423
$env:DOTNET_CLI_TELEMETRY_OPTOUT = 1
24+
$env:DOTNET_NOLOGO = 1
2525

2626
###########################################################################
2727
# EXECUTION
@@ -32,37 +32,43 @@ function ExecSafe([scriptblock] $cmd) {
3232
if ($LASTEXITCODE) { exit $LASTEXITCODE }
3333
}
3434

35-
# If global.json exists, load expected version
36-
if (Test-Path $DotNetGlobalFile) {
37-
$DotNetGlobal = $(Get-Content $DotNetGlobalFile | Out-String | ConvertFrom-Json)
38-
if ($DotNetGlobal.PSObject.Properties["sdk"] -and $DotNetGlobal.sdk.PSObject.Properties["version"]) {
39-
$DotNetVersion = $DotNetGlobal.sdk.version
40-
}
41-
}
42-
43-
# If dotnet is installed locally, and expected version is not set or installation matches the expected version
35+
# If dotnet CLI is installed globally and it matches requested version, use for execution
4436
if ($null -ne (Get-Command "dotnet" -ErrorAction SilentlyContinue) -and `
45-
(!(Test-Path variable:DotNetVersion) -or $(& dotnet --version) -eq $DotNetVersion)) {
37+
$(dotnet --version) -and $LASTEXITCODE -eq 0) {
4638
$env:DOTNET_EXE = (Get-Command "dotnet").Path
4739
}
4840
else {
49-
$DotNetDirectory = "$TempDirectory\dotnet-win"
50-
$env:DOTNET_EXE = "$DotNetDirectory\dotnet.exe"
51-
5241
# Download install script
5342
$DotNetInstallFile = "$TempDirectory\dotnet-install.ps1"
54-
New-Item -ItemType Directory -Path $TempDirectory | Out-Null
43+
New-Item -ItemType Directory -Path $TempDirectory -Force | Out-Null
44+
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
5545
(New-Object System.Net.WebClient).DownloadFile($DotNetInstallUrl, $DotNetInstallFile)
5646

47+
# If global.json exists, load expected version
48+
if (Test-Path $DotNetGlobalFile) {
49+
$DotNetGlobal = $(Get-Content $DotNetGlobalFile | Out-String | ConvertFrom-Json)
50+
if ($DotNetGlobal.PSObject.Properties["sdk"] -and $DotNetGlobal.sdk.PSObject.Properties["version"]) {
51+
$DotNetVersion = $DotNetGlobal.sdk.version
52+
}
53+
}
54+
5755
# Install by channel or version
56+
$DotNetDirectory = "$TempDirectory\dotnet-win"
5857
if (!(Test-Path variable:DotNetVersion)) {
59-
ExecSafe { & $DotNetInstallFile -InstallDir $DotNetDirectory -Channel $DotNetChannel -NoPath }
58+
ExecSafe { & powershell $DotNetInstallFile -InstallDir $DotNetDirectory -Channel $DotNetChannel -NoPath }
6059
} else {
61-
ExecSafe { & $DotNetInstallFile -InstallDir $DotNetDirectory -Version $DotNetVersion -NoPath }
60+
ExecSafe { & powershell $DotNetInstallFile -InstallDir $DotNetDirectory -Version $DotNetVersion -NoPath }
6261
}
62+
$env:DOTNET_EXE = "$DotNetDirectory\dotnet.exe"
63+
$env:PATH = "$DotNetDirectory;$env:PATH"
6364
}
6465

65-
Write-Output "Microsoft (R) .NET Core SDK version $(& $env:DOTNET_EXE --version)"
66+
Write-Output "Microsoft (R) .NET SDK version $(& $env:DOTNET_EXE --version)"
67+
68+
if (Test-Path env:NUKE_ENTERPRISE_TOKEN) {
69+
& $env:DOTNET_EXE nuget remove source "nuke-enterprise" > $null
70+
& $env:DOTNET_EXE nuget add source "https://f.feedz.io/nuke/enterprise/nuget" --name "nuke-enterprise" --username "PAT" --password $env:NUKE_ENTERPRISE_TOKEN > $null
71+
}
6672

67-
ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false }
73+
ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet }
6874
ExecSafe { & $env:DOTNET_EXE run --project $BuildProjectFile --no-build -- $BuildArguments }

0 commit comments

Comments
 (0)