Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions .github/workflows/build-cpp-nuget-packages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: "Build C++ NuGet Packages"

on:
workflow_call:
inputs:
ice_version:
required: false
type: string
run_id:
description: "The run ID to use for downloading artifacts"
required: true
type: string
workflow_dispatch:
inputs:
ice_version:
description: "The Ice version to build"
required: false
run_id:
description: "The run ID to use for downloading artifacts"
required: true

jobs:
build-cpp-nuget-packages:
runs-on: windows-2022
strategy:
matrix:
platform-toolset: [v143, v142]
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup C++
uses: ./.github/actions/setup-cpp

- name: Download C++ Binaries
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh run download "${{ inputs.run_id }}" --repo ${{ github.repository }} --name windows-cpp-${{ matrix.platform-toolset }}-x64-Release-build --dir cpp
gh run download "${{ inputs.run_id }}" --repo ${{ github.repository }} --name windows-cpp-${{ matrix.platform-toolset }}-x64-Debug-build --dir cpp
gh run download "${{ inputs.run_id }}" --repo ${{ github.repository }} --name windows-cpp-${{ matrix.platform-toolset }}-Win32-Release-build --dir cpp
gh run download "${{ inputs.run_id }}" --repo ${{ github.repository }} --name windows-cpp-${{ matrix.platform-toolset }}-Win32-Debug-build --dir cpp

- name: Ice Package Version
if: ${{ inputs.ice_version != '' }}
run: |
$nuspecPath = "cpp\msbuild\zeroc.ice.${{ matrix.platform-toolset}}.nuspec"
$nuspec = Get-Content $nuspecPath
$nuspec -replace '<version>.*</version>', '<version>${{ inputs.ice_version }}</version>' `
| Set-Content $nuspecPath
shell: pwsh

- name: Build C++ NuGet Packages
run: msbuild /m ice.proj /t:NuGetPack /p:BuildAllConfigurations=yes /p:DefaultPlatformToolset=${{ matrix.platform-toolset }}
working-directory: cpp/msbuild

- name: Upload NuGet Packages
uses: actions/upload-artifact@v4
with:
name: windows-cpp-nuget-${{ matrix.platform-toolset }}-packages
path: |
cpp/msbuild/zeroc.ice.${{ matrix.platform-toolset }}/*.nupkg
75 changes: 75 additions & 0 deletions .github/workflows/build-cpp-windows-binaries.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: "Build C++ Windows Binaries"

on:
workflow_call:
inputs:
ice_version:
required: false
type: string
workflow_dispatch:
inputs:
ice_version:
description: "The Ice version to build"
required: false

jobs:
build-cpp-windows-binaries:
runs-on: windows-2022
strategy:
max-parallel: 4
matrix:
platform: [x64, Win32]
configuration: [Release, Debug]
platform-toolset: [v143, v142]
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup C++
uses: ./.github/actions/setup-cpp

- name: Install MSVC v142 toolset for VS2019 builds
if: matrix.platform-toolset == 'v142'
shell: pwsh
run: |
$vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"
$vsInstaller = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vs_installer.exe"

$installPath = & $vswhere -latest -products * -property installationPath
if (-not $installPath) { throw "Visual Studio installation not found." }

# v142 toolset component group ID (VS2019 toolset)
& $vsInstaller modify --installPath "$installPath" `
--add Microsoft.VisualStudio.ComponentGroup.VC.Tools.142.x86.x64 `
--quiet --wait --norestart

- name: Build C++ Binaries
run: |
msbuild /m ice.proj /t:BuildDist /p:Configuration=${{ matrix.configuration }} /p:Platform=${{ matrix.platform }} /p:DefaultPlatformToolset=${{ matrix.platform-toolset }}
working-directory: cpp/msbuild

- name: Sign C++ Binaries with Trusted Signing
uses: azure/trusted-signing-action@v0
with:
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
azure-client-secret: ${{ secrets.AZURE_CLIENT_SECRET }}
endpoint: https://eus.codesigning.azure.net/
trusted-signing-account-name: zeroc
certificate-profile-name: zeroc-ice
files-folder: ./cpp/bin/${{ matrix.platform }}/${{ matrix.configuration }}
files-folder-filter: exe,dll
file-digest: SHA256
timestamp-rfc3161: http://timestamp.acs.microsoft.com
timestamp-digest: SHA256

- name: Upload C++ Build
uses: actions/upload-artifact@v4
with:
name: windows-cpp-${{matrix.platform-toolset}}-${{ matrix.platform }}-${{ matrix.configuration }}-build
path: |
cpp/bin/${{ matrix.platform }}/${{ matrix.configuration }}/
cpp/lib/${{ matrix.platform }}/${{ matrix.configuration }}/
cpp/include/generated/${{ matrix.platform }}/${{ matrix.configuration }}/
cpp/src/**/msbuild/**/${{ matrix.platform }}/${{ matrix.configuration }}/*.cpp
cpp/src/**/msbuild/**/${{ matrix.platform }}/${{ matrix.configuration }}/*.h
6 changes: 5 additions & 1 deletion .github/workflows/build-dotnet-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4

# Required to build the Slice compilers, and to get MSBuild.
- name: Setup C++
uses: ./.github/actions/setup-cpp

- name: Ice Package Version
if: ${{ inputs.ice_version != '' }}
run: |
Expand All @@ -30,7 +34,7 @@ jobs:

- name: Pack .NET Packages
run: |
msbuild csharp\msbuild\ice.proj /t:BuildDist /p:Configuration=Release
msbuild csharp\msbuild\ice.proj /t:BuildDist /p:Configuration=Release /p:Platform=x64

- name: Collect Files to Sign
run: |
Expand Down
48 changes: 48 additions & 0 deletions .github/workflows/build-maven-packages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: "Build Maven Packages"

on:
workflow_call:
inputs:
ice_version:
required: false
type: string
workflow_dispatch:
inputs:
ice_version:
description: "The Ice version to build"
required: false
jobs:
build-maven-packages:
runs-on: ubuntu-24.04
env:
SLICE2JAVA_STAGING_PATH: ${{ github.workspace }}/ice/java/tools/slice-tools/src/main/resources/resources

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
path: ice

- name: Update Ice Version
run: |
sed -i "s/^iceVersion = .*/iceVersion = ${{ inputs.ice_version }}/" java/gradle.properties
sed -i "s/^iceVersion = .*/iceVersion = ${{ inputs.ice_version }}/" java-compat/gradle.properties
if: ${{ inputs.ice_version != '' }}

- name: Build Ice for Java Packages
run: ./gradlew dist
working-directory: ice/java

- name: Build Ice for Java Compat Packages
run: ./gradlew dist
working-directory: ice/java-compat

- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: java-packages
path: |
ice/java/lib/*.jar
ice/java/lib/*.pom
ice/java-compat/lib/*.jar
ice/java-compat/lib/*.pom
18 changes: 18 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,11 @@ jobs:
- name: Setup Java
uses: ./.github/actions/setup-java

- name: Set Build Configurations
run: echo "CONFIGS=shared cpp11-shared" >> $GITHUB_ENV
shell: bash
if: runner.os != 'Windows'

- name: Build ${{ matrix.config }} on ${{ matrix.os }}
uses: ./.github/actions/build
timeout-minutes: 90
Expand All @@ -60,3 +65,16 @@ jobs:
# TODO: Filter out IceSSL/configuration see https://github.com/zeroc-ice/ice/issues/4805
# TODO: Filter out IceGrid/replication see https://github.com/zeroc-ice/ice/issues/4818
flags: "--all --rfilter IceSSL/configuration --rfilter IceGrid/replication"

- name: Test C++11 on ${{ matrix.os }}
uses: ./.github/actions/test
timeout-minutes: 45
with:
working_directory: cpp
# TODO: Filter out IceSSL/configuration see https://github.com/zeroc-ice/ice/issues/4805
# TODO: Filter out IceGrid/replication see https://github.com/zeroc-ice/ice/issues/4818
flags: >-
--all
--config ${{ runner.os == 'Windows' && 'Cpp11-Release' || 'cpp11-shared' }}
--rfilter IceSSL/configuration
--rfilter IceGrid/replication
28 changes: 20 additions & 8 deletions cpp/msbuild/ice.proj
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,27 @@
<OpenSSL>yes</OpenSSL>
</PropertyGroup>

<Choose>
<When Condition="'$(DefaultPlatformToolset)' == 'v100' OR '$(DefaultPlatformToolset)' == 'v110'">
<PropertyGroup>
<IceDistSln>$(IceDistSln)</IceDistSln>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup>
<IceDistSln>ice.sln</IceDistSln>
</PropertyGroup>
</Otherwise>
</Choose>

<Import Project="$(MSBuildThisFileDirectory)\..\..\config\icebuilder.props" />
<Import Project="$(MSBuildThisFileDirectory)\..\..\config\Ice.common.targets" />

<!--
Restore NuGet packages.
-->
<Target Name="NuGetRestore" DependsOnTargets="GetNuGet">
<Exec Command="$(NuGetExe) restore $(MSBuildThisFileDirectory)ice.$(DefaultPlatformToolset).sln"/>
<Exec Command="$(NuGetExe) restore $(MSBuildThisFileDirectory)$(IceDistSln)"/>
</Target>

<Target Name="RemovePackages">
Expand Down Expand Up @@ -70,16 +83,16 @@
</PropertyGroup>
<!-- Ice for C++ configurations -->
<ItemGroup>
<DistSolution Include="ice.$(DefaultPlatformToolset).sln">
<DistSolution Include="$(IceDistSln)">
<Properties>Configuration=Debug;Platform=Win32;VisualStudioVersion=$(VisualStudioVersion)</Properties>
</DistSolution>
<DistSolution Include="ice.$(DefaultPlatformToolset).sln">
<DistSolution Include="$(IceDistSln)">
<Properties>Configuration=Debug;Platform=x64;VisualStudioVersion=$(VisualStudioVersion)</Properties>
</DistSolution>
<DistSolution Include="ice.$(DefaultPlatformToolset).sln">
<DistSolution Include="$(IceDistSln)">
<Properties>Configuration=Release;Platform=Win32;VisualStudioVersion=$(VisualStudioVersion)</Properties>
</DistSolution>
<DistSolution Include="ice.$(DefaultPlatformToolset).sln">
<DistSolution Include="$(IceDistSln)">
<Properties>Configuration=Release;Platform=x64;VisualStudioVersion=$(VisualStudioVersion)</Properties>
</DistSolution>
</ItemGroup>
Expand Down Expand Up @@ -154,7 +167,7 @@
</PropertyGroup>
<!-- Ice for C++98 configurations -->
<ItemGroup>
<DistSolution Include="ice.$(DefaultPlatformToolset).sln">
<DistSolution Include="$(IceDistSln)">
<Properties>Configuration=$(Configuration);Platform=$(Platform);VisualStudioVersion=$(VisualStudioVersion)</Properties>
</DistSolution>

Expand Down Expand Up @@ -226,8 +239,7 @@
</Target>

<!-- Create nuget packages -->
<Target Name="NuGetPack"
DependsOnTargets="BuildDist">
<Target Name="NuGetPack" DependsOnTargets="GetNuGet">

<RemoveDir Directories="zeroc.ice.$(DefaultPlatformToolset)" />

Expand Down
File renamed without changes.
6 changes: 3 additions & 3 deletions cpp/msbuild/zeroc.ice.v143.targets
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<!-- Use bin and lib directories that match the used platform toolset -->
<PropertyGroup Condition="'$(PlatformToolset)' == 'v143'">
<PropertyGroup Condition="$([MSBuild]::VersionGreaterThanOrEquals('$(PlatformToolset)', '143'))">
<IceConfiguration Condition="'$(UseDebugLibraries)' == 'true'">Debug</IceConfiguration>
<IceConfiguration Condition="'$(UseDebugLibraries)' != 'true'">Release</IceConfiguration>
<LocalDebuggerEnvironment Condition="'$(LocalDebuggerEnvironment)' == ''">PATH=$(MSBuildThisFileDirectory)bin\$(Platform)\$(IceConfiguration)</LocalDebuggerEnvironment>
Expand All @@ -20,7 +20,7 @@
<_Ice_DLLs_v143 Include="$(MSBuildThisFileDirectory)bin\$(Platform)\$(IceConfiguration)\bzip2*.dll"/>
</ItemGroup>

<ItemDefinitionGroup Condition="'$(PlatformToolset)' == 'v143'">
<ItemDefinitionGroup Condition="$([MSBuild]::VersionGreaterThanOrEquals('$(PlatformToolset)', '143'))">
<ClCompile>
<AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
Expand All @@ -34,7 +34,7 @@
Condition="'$(IceNugetPackageVersion)' != '3.7.10'" />
</Target>

<Target Name="Ice_CopyDLLs_v143" AfterTargets="Build" Condition="'$(PlatformToolset)' == 'v143' and '$(Ice_CopyDLLs)' == 'Yes'">
<Target Name="Ice_CopyDLLs_v143" AfterTargets="Build" Condition="$([MSBuild]::VersionGreaterThanOrEquals('$(PlatformToolset)', '143')) and '$(Ice_CopyDLLs)' == 'Yes'">
<Copy SourceFiles="@(_Ice_DLLs_v143)"
DestinationFolder="$(OutDir)"
SkipUnchangedFiles="true"/>
Expand Down
11 changes: 1 addition & 10 deletions csharp/msbuild/ice.proj
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,6 @@
<PropertyGroup>
<CppPlatform Condition="'$(Platform)' == 'x64'">x64</CppPlatform>
<CppPlatform Condition="'$(Platform)' == 'x86' or '$(Platform)' == 'Win32'">Win32</CppPlatform>

<UwpPlatform Condition="'$(Platform)' == 'x64'">x64</UwpPlatform>
<UwpPlatform Condition="'$(Platform)' == 'x86' or '$(Platform)' == 'Win32'">x86</UwpPlatform>

<DefaultPlatformToolset Condition="'$(VisualStudioVersion)' == '12.0'">v120</DefaultPlatformToolset>
<DefaultPlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</DefaultPlatformToolset>
<DefaultPlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</DefaultPlatformToolset>
<DefaultPlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</DefaultPlatformToolset>
<DefaultPlatformToolset Condition="'$(VisualStudioVersion)' == '17.0'">v143</DefaultPlatformToolset>
</PropertyGroup>

<Import Project="$(MSBuildThisFileDirectory)\..\..\config\icebuilder.props" />
Expand Down Expand Up @@ -45,7 +36,7 @@
BuildInParallel="true"
Condition="'$(OS)' == 'Windows_NT'"/>

<MSBuild Projects="$(MSBuildThisFileDirectory)..\..\cpp\msbuild\ice.$(DefaultPlatformToolset).sln"
<MSBuild Projects="$(MSBuildThisFileDirectory)..\..\cpp\msbuild\ice.sln"
Targets="@(SliceCompilers)"
BuildInParallel="true"
Properties="Platform=$(CppPlatform);Configuration=$(Configuration)"
Expand Down
4 changes: 2 additions & 2 deletions matlab/msbuild/ice.proj
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,12 @@
<Target Name="NuGetRestore" DependsOnTargets="GetNuGet">
<Exec Command="$(NuGetExe) install zeroc.ice.v140 -OutputDirectory $(MSBuildThisFileDirectory)packages -Version $(IceJSONVersion)"
Condition="'$(ICE_BIN_DIST)' == 'cpp'"/>
<Exec Command="$(NuGetExe) restore $(MSBuildThisFileDirectory)..\..\cpp\msbuild\ice.$(DefaultPlatformToolset).sln"
<Exec Command="$(NuGetExe) restore $(MSBuildThisFileDirectory)..\..\cpp\msbuild\ice.sln"
Condition="'$(ICE_BIN_DIST)' == ''"/>
</Target>

<Target Name="BuildCppDist" Condition="'$(ICE_BIN_DIST)' == ''" DependsOnTargets="NuGetRestore">
<MSBuild Projects="$(MSBuildThisFileDirectory)..\..\cpp\msbuild\ice.$(DefaultPlatformToolset).sln"
<MSBuild Projects="$(MSBuildThisFileDirectory)..\..\cpp\msbuild\ice.sln"
Targets="c++98\slice2matlab;c++11\ice++11;c++11\icessl++11;c++11\icediscovery++11;c++11\icelocatordiscovery++11"
BuildInParallel="true"
Properties="Platform=$(Platform);Configuration=$(Configuration)" />
Expand Down
4 changes: 2 additions & 2 deletions python/msbuild/ice.proj
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@
</ItemGroup>

<Target Name="BuildCppDist" DependsOnTargets="NuGetRestore">
<Exec Command="$(NuGetExe) restore $(MSBuildThisFileDirectory)..\..\cpp\msbuild\ice.$(DefaultPlatformToolset).sln"/>
<MSBuild Projects="$(MSBuildThisFileDirectory)..\..\cpp\msbuild\ice.$(DefaultPlatformToolset).sln"
<Exec Command="$(NuGetExe) restore $(MSBuildThisFileDirectory)..\..\cpp\msbuild\ice.sln"/>
<MSBuild Projects="$(MSBuildThisFileDirectory)..\..\cpp\msbuild\ice.sln"
Targets="$(CppDistTargets)"
BuildInParallel="true"
Properties="Platform=$(Platform);Configuration=$(Configuration)" />
Expand Down
Loading