Skip to content

Update CPP documentation #52

Update CPP documentation

Update CPP documentation #52

Workflow file for this run

# This is a basic workflow to help you get started with Actions
name: CI_PULLREQUEST
# Controls when the action will run. Triggers the workflow on pull request
# events but only for the master branch
on:
pull_request:
branches:
- master
- release/**
paths-ignore:
- 'docs/**'
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true
jobs:
# Verify if a build is needed
check_opendds:
name: Check artifact files
outputs:
build_opendds: ${{ steps.check_existsOpenDDS.outputs.build_opendds }}
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- uses: actions/cache/restore@v4
id: cache
with:
lookup-only: true
enableCrossOsArchive: true
path: ./OutputOpenDDS/
key: OpenDDS_3.29.1
- name: If failed we need to rebuild artifact
id: check_existsOpenDDS
if: steps.cache.outputs.cache-hit != 'true'
# if: ${{ steps.existsOpenDDS.outcome == 'failure' }}
run: echo "build_opendds=true" >> $GITHUB_OUTPUT
build_opendds_windows:
needs: check_opendds
if: needs.check_opendds.outputs.build_opendds == 'true'
# The type of runner that the job will run on
runs-on: windows-2022
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Runs a set of commands using the runners shell
# Support longpaths
- name: Support long paths
run: git config --system core.longpaths true
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
with:
submodules: 'true'
- name: set up msvc env
uses: ilammy/[email protected]
- name: Configure OpenDDS
shell: cmd
run: |
cd src\3rdparty\OpenDDS
configure
- name: Build OpenDDS x64
shell: cmd
run: |
cd src\3rdparty\OpenDDS
call setenv.cmd
msbuild -p:Configuration=Release,Platform=x64 -m DDS_TAOv2.sln
- name: Move OpenDDS x64 binaries
shell: cmd
run: |
cd src\3rdparty\OpenDDS
xcopy .\lib\*.dll ..\..\..\Output\x64\
xcopy .\lib\*.lib ..\..\..\Output\lib64\
xcopy .\bin\*.exe ..\..\..\Output\bin64\
xcopy .\ACE_wrappers\lib\*.dll ..\..\..\Output\x64\
xcopy .\ACE_wrappers\lib\*.lib ..\..\..\Output\lib64\
xcopy .\ACE_wrappers\bin\*.exe ..\..\..\Output\bin64\
- name: Move OpenDDS x64 PDB
shell: cmd
run: |
cd src\3rdparty\OpenDDS
mkdir ..\..\OutputPdb
xcopy .\lib\*.pdb ..\..\..\OutputPdb\pdb64\
xcopy .\bin\*.pdb ..\..\..\OutputPdb\pdb64\
xcopy .\ACE_wrappers\lib\*.pdb ..\..\..\OutputPdb\pdb64\
xcopy .\ACE_wrappers\bin\*.pdb ..\..\..\OutputPdb\pdb64\
- name: Build OpenDDS x86
shell: cmd
run: |
cd src\3rdparty\OpenDDS
call setenv.cmd
msbuild -p:Configuration=Release,Platform=Win32 -m DDS_TAOv2.sln
- name: Move OpenDDS x86 binaries
shell: cmd
run: |
cd src\3rdparty\OpenDDS
xcopy .\lib\*.dll ..\..\..\Output\x86\
xcopy .\lib\*.lib ..\..\..\Output\lib32\
xcopy .\bin\*.exe ..\..\..\Output\bin32\
xcopy .\ACE_wrappers\lib\*.dll ..\..\..\Output\x86\
xcopy .\ACE_wrappers\lib\*.lib ..\..\..\Output\lib32\
xcopy .\ACE_wrappers\bin\*.exe ..\..\..\Output\bin32\
- name: Move OpenDDS x86 PDB
shell: cmd
run: |
cd src\3rdparty\OpenDDS
xcopy .\lib\*.pdb ..\..\..\OutputPdb\pdb32\
xcopy .\bin\*.pdb ..\..\..\OutputPdb\pdb32\
xcopy .\ACE_wrappers\lib\*.pdb ..\..\..\OutputPdb\pdb32\
xcopy .\ACE_wrappers\bin\*.pdb ..\..\..\OutputPdb\pdb32\
- name: Move setenv.cmd
shell: cmd
run: |
cd src\3rdparty\OpenDDS
xcopy setenv.cmd ..\..\..\Output\
- name: Prepare for packaging OpenDDS Binaries and PDB
run: |
New-Item -Path .\OutputOpenDDS -ItemType directory
Compress-Archive -Path .\Output\* -DestinationPath .\OutputOpenDDS\OpenDDS_Build_3.29.1.zip
Compress-Archive -Path .\OutputPdb\* -DestinationPath .\OutputOpenDDS\OpenDDS_PDB_Build_3.29.1.zip
- name: Prepare for packaging OpenDDS Headers
shell: cmd
run: |
7z a .\OutputOpenDDS\OpenDDS_Headers_3.29.1.zip .\src\3rdparty\OpenDDS\*.h -r
7z u .\OutputOpenDDS\OpenDDS_Headers_3.29.1.zip .\src\3rdparty\OpenDDS\*.inl -r
- name: Save OpenDDS in cache
uses: actions/cache/save@v4
with:
enableCrossOsArchive: true
path: ./OutputOpenDDS/
key: OpenDDS_3.29.1
# This workflow contains a single job called "build_release"
build_pullrequest:
needs: [check_opendds, build_opendds_windows]
if: always()
# The type of runner that the job will run on
runs-on: windows-2022
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Runs a set of commands using the runners shell
# Support longpaths
- name: Support long paths
run: git config --system core.longpaths true
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
with:
submodules: 'true'
- name: set up msvc env
uses: ilammy/[email protected]
- name: Build Common Tools
shell: cmd
run: |
cd src\3rdparty\CommonTools
msbuild -p:Configuration=Release,Platform="Any CPU" -m CommonTools.sln
- name: Extract commit SHA
run: |
echo "GITHUB_COMMIT_MESSAGE=$(echo $GITHUB_SHA)" >> $GITHUB_ENV
shell: bash
- name: Prepare version
shell: cmd
run: |
cd src\3rdparty\CommonTools\Output
VersionGenerator %GITHUB_WORKSPACE%\src\ProductInformation\Version.cs %GITHUB_WORKSPACE%\src\ProductInformation ${{ env.GITHUB_COMMIT_MESSAGE }}
env:
GITHUB_WORKSPACE: $GITHUB_WORKSPACE
- name: Prepare nuget
shell: cmd
run: |
src\3rdparty\CommonTools\Output\PlaceHolderReplacer.exe .\src\ProductInformation\Version.cs .\src\packaging\nuget\datadistributionmanager.nuspec >> .\nuget_version.txt
- name: Store version
run: |
echo "NUGET_PACKAGE_VERSION=$(cat nuget_version.txt)" >> $GITHUB_ENV
shell: bash
- name: Verify Nuget version in file
run: |
type .\src\packaging\nuget\datadistributionmanager.nuspec
echo ${{ env.NUGET_PACKAGE_VERSION }}
shell: cmd
- name: Configure OpenDDS
shell: cmd
run: |
cd src\3rdparty\OpenDDS
configure
- name: Restore OpenDDS from cache
uses: actions/cache/restore@v4
with:
fail-on-cache-miss: true
enableCrossOsArchive: true
path: ./OutputOpenDDS/
key: OpenDDS_3.29.1
- name: Prepare OpenDDS Binaries
run: |
Expand-Archive -LiteralPath '.\OutputOpenDDS\OpenDDS_Build_3.29.1.zip' -DestinationPath .\Output -Force
- name: Prepare OpenDDS Headers
run: |
Expand-Archive -LiteralPath '.\OutputOpenDDS\OpenDDS_Headers_3.29.1.zip' -DestinationPath .\src\3rdparty\OpenDDS -Force
- name: Move OpenDDS x64
shell: cmd
run: |
xcopy .\Output\bin32\*.* .\src\3rdparty\OpenDDS\bin\
xcopy .\Output\x86\*.dll .\src\3rdparty\OpenDDS\lib\
xcopy .\Output\bin32\*.* .\src\3rdparty\OpenDDS\ACE_wrappers\bin\
xcopy .\Output\x86\*.dll .\src\3rdparty\OpenDDS\ACE_wrappers\lib\
- name: Generate OpenDDS projects
shell: cmd
run: |
call .\src\3rdparty\OpenDDS\setenv.cmd
cd src\native\DataDistributionManagerOpenDDS
perl %ACE_ROOT%\bin\generate_export_file.pl DataDistributionSchemaCommon > DataDistributionSchemaCommon_Export.h
perl %ACE_ROOT%\bin\mwc.pl -type vs2022 DataDistributionManagerOpenDDS.mwc
cd ..\..\..
- uses: nuget/[email protected]
with:
nuget-version: '5.x'
- run: nuget restore src\DataDistributionManager.sln
- name: Build DataDistributionManager x64
shell: cmd
run: |
call .\src\3rdparty\OpenDDS\setenv.cmd
set JDK_ROOT_FOLDER=%JAVA_HOME_11_X64%
cd src
msbuild /m -p:Configuration=Release,Platform=x64 DataDistributionManager.sln
- name: Build DataDistributionManager x86
shell: cmd
run: |
call .\src\3rdparty\OpenDDS\setenv.cmd
set JDK_ROOT_FOLDER=%JAVA_HOME_11_X64%
cd src
msbuild /m -p:Configuration=Release,Platform=Win32 DataDistributionManager.sln
- name: Build DataDistributionManager net462, net6.0 and net8.0
run: |
dotnet build --no-incremental --configuration Release --framework net462 -o Output src\net\DataDistributionManagerNet\DataDistributionManagerNet.csproj
dotnet build --no-incremental --configuration Release --framework net6.0 -o Outputnet6.0 src\net\DataDistributionManagerNet\DataDistributionManagerNet.csproj
dotnet build --no-incremental --configuration Release --framework net8.0 -o Outputnet8.0 src\net\DataDistributionManagerNet\DataDistributionManagerNet.csproj
- name: Prepare for packaging
run: |
New-Item -Path .\OutputPackage -ItemType directory
New-Item -Path .\OutputPackage\lib -ItemType directory
New-Item -Path .\OutputPackage\lib\x86 -ItemType directory
New-Item -Path .\OutputPackage\lib\x64 -ItemType directory
New-Item -Path .\OutputPackage\runtime -ItemType directory
New-Item -Path .\OutputPackage\runtime\x86 -ItemType directory
New-Item -Path .\OutputPackage\runtime\x64 -ItemType directory
New-Item -Path .\OutputPackage\pdb -ItemType directory
New-Item -Path .\OutputPackage\pdb\x86 -ItemType directory
New-Item -Path .\OutputPackage\pdb\x64 -ItemType directory
New-Item -Path .\OutputPackage\include -ItemType directory
New-Item -Path .\OutputPackage\licenses -ItemType directory
Copy-Item .\src\native\DataDistributionManager\DataDistributionManagerEnums.h .\OutputPackage\include\DataDistributionManagerEnums.h
Copy-Item .\src\native\DataDistributionManager\DataDistributionManagerTypes.h .\OutputPackage\include\DataDistributionManagerTypes.h
Copy-Item .\src\native\DataDistributionManager\DataDistributionManager.h .\OutputPackage\include\DataDistributionManager.h
Copy-Item .\src\native\DataDistributionManager\SmartDataDistributionManager.h .\OutputPackage\include\SmartDataDistributionManager.h
Copy-Item .\Output\x86\DataDistributionManager.lib .\OutputPackage\lib\x86\DataDistributionManager.lib -Force
Copy-Item .\Output\x64\DataDistributionManager.lib .\OutputPackage\lib\x64\DataDistributionManager.lib -Force
Copy-Item .\Output\*.dll .\OutputPackage\runtime\ -Force
Copy-Item .\Output\x86\*.dll .\OutputPackage\runtime\x86\ -Force
Copy-Item .\Output\bin32\dcpsinfo_dump.exe .\OutputPackage\runtime\x86\ -Force
Copy-Item .\Output\bin32\DCPSInfoRepo.exe .\OutputPackage\runtime\x86\ -Force
Copy-Item .\Output\bin32\repoctl.exe .\OutputPackage\runtime\x86\ -Force
Copy-Item .\Output\x64\*.dll .\OutputPackage\runtime\x64\ -Force
Copy-Item .\Output\bin64\dcpsinfo_dump.exe .\OutputPackage\runtime\x64\ -Force
Copy-Item .\Output\bin64\DCPSInfoRepo.exe .\OutputPackage\runtime\x64\ -Force
Copy-Item .\Output\bin64\repoctl.exe .\OutputPackage\runtime\x64\ -Force
Copy-Item .\Output\x86\*.pdb .\OutputPackage\pdb\x86\ -Force
Copy-Item .\Output\pdb32\*.pdb .\OutputPackage\pdb\x86\ -Force
Copy-Item .\Output\x64\*.pdb .\OutputPackage\pdb\x64\ -Force
Copy-Item .\Output\pdb64\*.pdb .\OutputPackage\pdb\x64\ -Force
Copy-Item .\LICENSE .\OutputPackage\licenses\LICENSE.datadistributionmanager -Force
Copy-Item .\src\packages\librdkafka.redist.2.5.3\LICENSES.txt .\OutputPackage\licenses\LICENSE.librdkafka -Force
Copy-Item .\src\3rdparty\OpenDDS\LICENSE .\OutputPackage\licenses\LICENSE.opendds -Force
Compress-Archive -Path .\OutputPackage\* -DestinationPath .\OutputPackage\DataDistributionManager.zip
- name: Prepare for Java packaging
run: |
New-Item -Path .\OutputJava -ItemType directory
New-Item -Path .\OutputJava\windows_x64 -ItemType directory
New-Item -Path .\OutputJava\windows_x86 -ItemType directory
Compress-Archive -Path .\OutputPackage\runtime\x64\* -DestinationPath .\OutputJava\windows_x64\nativepackage.zip
Compress-Archive -Path .\OutputPackage\runtime\x86\* -DestinationPath .\OutputJava\windows_x86\nativepackage.zip
- name: Build Java Binder
shell: cmd
run: |
cd src\jvm
set JDK_ROOT_FOLDER=%JAVA_HOME_11_X64%
CreateJar.bat
cd ..\..
- uses: nuget/[email protected]
with:
nuget-version: '5.x'
- run: nuget pack src\packaging\nuget\datadistributionmanager.nuspec