Skip to content

ReactorInterceptor exists #8308

ReactorInterceptor exists

ReactorInterceptor exists #8308

Workflow file for this run

name: "MPC Builds"
on:
push:
paths:
- '**'
# Don't run this workflow if the only files that changed are the
# following. Make sure this is the same as the "pull_request.paths" list.
- '!AUTHORS'
- '!PROBLEM-REPORT-FORM'
- '!LICENSE'
- '!Dockerfile**'
- '!.dockerignore'
- '!.mailmap'
- '!.github/workflows/lint.yml'
- '!.github/workflows/sphinx_strict.yml'
- '!etc/**'
- '!docs/**'
- '!hooks/**'
- '!tools/scripts/gitrelease.pl'
- '!tools/scripts/lint.pl'
- '!**.md'
- '!**.rst'
- '!**/.gitignore'
- '!**/.lint_config'
- '!**/README*'
pull_request:
paths:
- '**'
# Don't run this workflow if the only files that changed are the
# following. Make sure this is the same as the "push.paths" list.
- '!AUTHORS'
- '!PROBLEM-REPORT-FORM'
- '!LICENSE'
- '!Dockerfile**'
- '!.dockerignore'
- '!.mailmap'
- '!.github/workflows/lint.yml'
- '!.github/workflows/sphinx_strict.yml'
- '!etc/**'
- '!docs/**'
- '!hooks/**'
- '!tools/scripts/gitrelease.pl'
- '!tools/scripts/lint.pl'
- '!**.md'
- '!**.rst'
- '!**/.gitignore'
- '!**/.lint_config'
- '!**/README*'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
TRIGGERING_COMMIT: ${{ github.event.pull_request.head.sha || github.sha }}
VCPKG_INSTALLED_DIR: ${{ github.workspace }}\vcpkg\installed
CTEST_OUTPUT_ON_FAILURE: ON
VCPKG_GIT_COMMIT: f7423ee180c4b7f40d43402c2feb3859161ef625
SCOREBOARD_UPLOAD_BRANCH: refs/heads/master
jobs:
ACE_TAO_u20_i0_xer0:
runs-on: ubuntu-20.04
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(c++ --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: get jdk version
shell: bash
run: |
export JDK_VERSION=$(java -version 2>&1 | grep -i version)
echo "JDK_VERSION=$JDK_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c01_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}_${{ env.JDK_VERSION }}
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
./configure --no-inline --tests --ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
. setenv.sh
cd ACE_TAO/ACE
make -j4
cd ../TAO
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.o" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_u20_i0_xer0_js0_j17:
runs-on: ubuntu-20.04
needs: ACE_TAO_u20_i0_xer0
steps:
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_i0_xer0_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_i0_xer0.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: configure OpenDDS
run: |
cd OpenDDS
./configure --no-inline --tests --java=$JAVA_HOME_17_X64 --no-rapidjson --ace=$GITHUB_WORKSPACE/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
mkdir OpenDDS/tests/cmake/build
cd OpenDDS/tests/cmake/build
cmake ..
cmake --build . -- -j4
- name: gitclean
shell: bash
run: |
touch output.txt
cd OpenDDS
git clean -nd -e ext | tee ../output.txt
if [ -s ../output.txt ]; then exit 1; fi
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.sh
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
cmake_u20_i0_xer0_js0_j17:
runs-on: ubuntu-20.04
needs: build_u20_i0_xer0_js0_j17
permissions:
contents: read
id-token: write
steps:
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_i0_xer0_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_i0_xer0.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u20_i0_xer0_js0_j17_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u20_i0_xer0_js0_j17.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install gdb
shell: bash
run: |
sudo apt-get update
sudo apt-get install gdb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS --no-dcps --cmake"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
build_u22_o1d0v1_xer0_j11:
runs-on: ubuntu-22.04
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: configure OpenDDS
run: |
cd OpenDDS
./configure \
--ace-github-latest \
--java=$JAVA_HOME_11_X64 \
--rapidjson \
--optimize \
--no-debug \
--features=versioned_namespace=1 \
--tests \
--compile-warnings=WARNING
- uses: ammaraskar/[email protected]
- name: make OpenDDS
run: |
cd OpenDDS
make -j4
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: make install OpenDDS
shell: bash
run: |
cd OpenDDS
set -e
export DESTDIR=$(realpath install_temp)
export INSTALL_PREFIX=$(realpath install_prefix)
export INSTALL_LIB=special-lib
. setenv.sh
cd $ACE_ROOT
make install
cd $TAO_ROOT
make install
cd $GITHUB_WORKSPACE/OpenDDS
make install
cp -r $DESTDIR/$INSTALL_PREFIX .
cat << EOF > install_setenv.sh
export OPENDDS_INSTALL_PREFIX=$INSTALL_PREFIX
source \$OPENDDS_INSTALL_PREFIX/share/ace/ace-devel.sh
source \$OPENDDS_INSTALL_PREFIX/share/tao/tao-devel.sh
source \$OPENDDS_INSTALL_PREFIX/share/dds/dds-devel.sh
export JAVA_HOME=$JAVA_HOME_11_X64
export JAVA_PLATFORM=linux
export PATH="\$OPENDDS_INSTALL_PREFIX/bin:\$PATH"
export MPC_ROOT=$ACE_ROOT/MPC
export LD_LIBRARY_PATH="\$OPENDDS_INSTALL_PREFIX/$INSTALL_LIB:\$LD_LIBRARY_PATH"
export ACE_SOURCE_ROOT=$ACE_ROOT
export TAO_SOURCE_ROOT=$TAO_ROOT
export PERL5LIB=$(realpath bin):\$ACE_SOURCE_ROOT/bin
EOF
- name: delete host directories
shell: bash
run: |
cd OpenDDS
rm -rf dds java/dds java/idl2jni java/tao FACE performance-tests/bench tools/rtpsrelay tests/DCPS/RtpsRelay java/tests/hello
- name: build make install tests
shell: bash
run: |
cd OpenDDS
. install_setenv.sh
cd tests
git clean -dfx .
$ACE_ROOT/bin/mwc.pl -type gnuace -value_project includes+=$PWD/../
make
- name: build make install cmake
shell: bash
run: |
cd OpenDDS
. install_setenv.sh
cd tests/cmake
git clean -dfx .
mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=$DDS_ROOT ..
cmake --build .
- name: build make install java
shell: bash
run: |
cd OpenDDS
. install_setenv.sh
cd java/tests
git clean -dfx .
$ACE_ROOT/bin/mwc.pl -type gnuace
make
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
tar cvf ../${{ github.job }}.tar setenv.sh install_setenv.sh ACE_TAO/ACE/bin/PerlACE
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
inst_u22_o1d0v1_xer0_j11:
runs-on: ubuntu-22.04
needs: build_u22_o1d0v1_xer0_j11
steps:
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u22_o1d0v1_xer0_j11_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u22_o1d0v1_xer0_j11.tar.xz
- name: test make install messenger
shell: bash
run: |
cd OpenDDS
. install_setenv.sh
cd tests/DCPS/Messenger
perl run_test.pl rtps
- name: test make install cmake
shell: bash
run: |
cd OpenDDS
. install_setenv.sh
cd tests/cmake/build/Messenger/Messenger_1
perl run_test.pl
- name: remove install clutter
shell: bash
run: |
cd OpenDDS
rm build_u22_o1d0v1_xer0_j11.tar.xz
rm -rf install_temp install_prefix install_setenv.sh
- name: gitclean
shell: bash
run: |
touch output.txt
cd OpenDDS
git clean -nd -e ext | tee ../output.txt
if [ -s ../output.txt ]; then exit 1; fi
ACE_TAO_u22_esafe_js0:
runs-on: ubuntu-22.04
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(c++ --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c11_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: setup gtest
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
./configure \
--ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE \
--mpc=$GITHUB_WORKSPACE/MPC \
--gtest=$GITHUB_WORKSPACE/OpenDDS/tests/googletest/build/install \
--no-rapidjson \
--safety-profile \
--tests \
--compile-warnings=WARNING
- name: exclude OpenDDS_Util and opendds_idl
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/build/host
perl -ni.bak -e "print unless /dds/" host_tools.mwc
. setenv.sh
$ACE_ROOT/bin/mwc.pl -type gnuace host_tools.mwc
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS/build/host
. setenv.sh
make -j4
cd ../target
. setenv.sh
cd ACE_TAO/ACE/ace
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/build/target/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
cd $GITHUB_WORKSPACE/OpenDDS
find . -iname "*\.o" | xargs rm
rm -rf build/{host,target}/ACE_TAO/{ACE,TAO}/{examples,performance-tests,tests}
tar cvf ../${{ github.job }}.tar build/host/ACE_TAO build/target/ACE_TAO
xz -3 ../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_u22_esafe_js0:
runs-on: ubuntu-22.04
needs: ACE_TAO_u22_esafe_js0
steps:
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: setup gtest
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install
- name: configure OpenDDS
run: |
cd OpenDDS
./configure \
--ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE \
--mpc=$GITHUB_WORKSPACE/MPC \
--gtest=$GITHUB_WORKSPACE/OpenDDS/tests/googletest/build/install \
--no-rapidjson \
--safety-profile \
--tests \
--compile-warnings=WARNING
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_esafe_js0_artifact
path: OpenDDS
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ ACE_TAO_u22_esafe_js0.tar.xz
- uses: ammaraskar/[email protected]
- name: build OpenDDS_Util lib and opendds_idl in host
shell: bash
run: |
cd OpenDDS/build/host
cat > host_tools.mwc <<EOF
workspace {
dds/DCPS/OpenDDS_Util.mpc
dds/idl
}
EOF
. setenv.sh
$ACE_ROOT/bin/mwc.pl -type gnuace host_tools.mwc
make -j4
- name: check build configuration
shell: bash
run: |
cd OpenDDS/build/target
. setenv.sh
tools/scripts/show_build_config.pl
- name: build OpenDDS
run: |
cd OpenDDS/build/target
. setenv.sh
make -j4
- name: create OpenDDS artifact
shell: bash
run: |
cd OpenDDS/build
tar cvf ../../${{ github.job }}.tar host/dds/idl/opendds_idl host/bin/opendds_idl host/setenv.sh host/VERSION.txt
cd target
find . -iname "*\.o" | xargs rm
cd ..
tar --exclude='ACE_TAO' -uvf ../../${{ github.job }}.tar target
xz -3 ../../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
test_u22_esafe_js0:
runs-on: ubuntu-22.04
needs: build_u22_esafe_js0
permissions:
contents: read
id-token: write
steps:
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_esafe_js0_artifact
path: OpenDDS
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ ACE_TAO_u22_esafe_js0.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u22_esafe_js0_artifact
path: OpenDDS/build
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS/build
tar xvfJ build_u22_esafe_js0.tar.xz
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: check build configuration
shell: bash
run: |
cd OpenDDS/build/target
. setenv.sh
tools/scripts/show_build_config.pl
- name: install gdb
shell: bash
run: |
sudo apt-get update
sudo apt-get install gdb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS/build/target
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS -Config SAFETY_EXTENDED -Config OPENDDS_SAFETY_PROFILE -Config DDS_NO_CONTENT_SUBSCRIPTION -Config DDS_NO_CONTENT_FILTERED_TOPIC -Config DDS_NO_MULTI_TOPIC -Config DDS_NO_QUERY_CONDITION -Config DDS_NO_OWNERSHIP_KIND_EXCLUSIVE -Config DDS_NO_OBJECT_MODEL_PROFILE -Config DDS_NO_PERSISTENCE_PROFILE -Config GH_ACTIONS_OPENDDS_SAFETY_PROFILE -Config NO_UNIT_TESTS"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/build/target/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/build/target/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/build/target/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/build/target/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/build/target/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/build/target/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_u22_bsafe_js0_FM-1f:
runs-on: ubuntu-22.04
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(c++ --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c11_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: setup gtest
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
./configure \
--ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE \
--mpc=$GITHUB_WORKSPACE/MPC \
--gtest=$GITHUB_WORKSPACE/OpenDDS/tests/googletest/build/install \
--no-rapidjson \
--safety-profile=base \
--no-built-in-topics \
--tests \
--compile-warnings=WARNING
- name: exclude OpenDDS_Util and opendds_idl
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/build/host
perl -ni.bak -e "print unless /dds/" host_tools.mwc
. setenv.sh
$ACE_ROOT/bin/mwc.pl -type gnuace host_tools.mwc
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS/build/host
. setenv.sh
make -j4
cd ../target
. setenv.sh
cd ACE_TAO/ACE/ace
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/build/target/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
cd $GITHUB_WORKSPACE/OpenDDS
find . -iname "*\.o" | xargs rm
rm -rf build/{host,target}/ACE_TAO/{ACE,TAO}/{examples,performance-tests,tests}
tar cvf ../${{ github.job }}.tar build/host/ACE_TAO build/target/ACE_TAO
xz -3 ../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_u22_bsafe_js0_FM-1f:
runs-on: ubuntu-22.04
needs: ACE_TAO_u22_bsafe_js0_FM-1f
steps:
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: setup gtest
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install
- name: configure OpenDDS
run: |
cd OpenDDS
./configure \
--ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE \
--mpc=$GITHUB_WORKSPACE/MPC \
--gtest=$GITHUB_WORKSPACE/OpenDDS/tests/googletest/build/install \
--no-rapidjson \
--safety-profile=base \
--no-built-in-topics \
--tests \
--compile-warnings=WARNING
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_bsafe_js0_FM-1f_artifact
path: OpenDDS
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ ACE_TAO_u22_bsafe_js0_FM-1f.tar.xz
- uses: ammaraskar/[email protected]
- name: build OpenDDS_Util lib and opendds_idl in host
shell: bash
run: |
cd OpenDDS/build/host
cat > host_tools.mwc <<EOF
workspace {
dds/DCPS/OpenDDS_Util.mpc
dds/idl
}
EOF
. setenv.sh
$ACE_ROOT/bin/mwc.pl -type gnuace host_tools.mwc
make -j4
- name: check build configuration
shell: bash
run: |
cd OpenDDS/build/target
. setenv.sh
tools/scripts/show_build_config.pl
- name: build OpenDDS
run: |
cd OpenDDS/build/target
. setenv.sh
make -j4
- name: create OpenDDS artifact
shell: bash
run: |
cd OpenDDS/build
tar cvf ../../${{ github.job }}.tar host/dds/idl/opendds_idl host/bin/opendds_idl host/setenv.sh host/VERSION.txt
cd target
find . -iname "*\.o" | xargs rm
cd ..
tar --exclude='ACE_TAO' -uvf ../../${{ github.job }}.tar target
xz -3 ../../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
test_u22_bsafe_js0_FM-1f:
runs-on: ubuntu-22.04
needs: build_u22_bsafe_js0_FM-1f
permissions:
contents: read
id-token: write
steps:
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_bsafe_js0_FM-1f_artifact
path: OpenDDS
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ ACE_TAO_u22_bsafe_js0_FM-1f.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u22_bsafe_js0_FM-1f_artifact
path: OpenDDS/build
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS/build
tar xvfJ build_u22_bsafe_js0_FM-1f.tar.xz
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: check build configuration
shell: bash
run: |
cd OpenDDS/build/target
. setenv.sh
tools/scripts/show_build_config.pl
- name: install gdb
shell: bash
run: |
sudo apt-get update
sudo apt-get install gdb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS/build/target
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS -Config SAFETY_BASE -Config OPENDDS_SAFETY_PROFILE -Config NO_BUILT_IN_TOPICS -Config DDS_NO_CONTENT_SUBSCRIPTION -Config DDS_NO_CONTENT_FILTERED_TOPIC -Config DDS_NO_MULTI_TOPIC -Config DDS_NO_QUERY_CONDITION -Config DDS_NO_OWNERSHIP_KIND_EXCLUSIVE -Config DDS_NO_OBJECT_MODEL_PROFILE -Config DDS_NO_PERSISTENCE_PROFILE -Config GH_ACTIONS_OPENDDS_SAFETY_PROFILE -Config NO_UNIT_TESTS"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/build/target/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/build/target/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/build/target/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/build/target/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/build/target/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/build/target/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_u22_d0i0v1_sec_js0_FM-08:
runs-on: ubuntu-22.04
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(c++ --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c01_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}
- name: install xerces
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
./configure --no-debug --no-inline --features=versioned_namespace=1 --tests --security --ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
. setenv.sh
cd ACE_TAO/ACE
make -j4
cd ../TAO
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.o" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_u22_d0i0v1_sec_js0_FM-08:
runs-on: ubuntu-22.04
needs: ACE_TAO_u22_d0i0v1_sec_js0_FM-08
steps:
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_d0i0v1_sec_js0_FM-08_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u22_d0i0v1_sec_js0_FM-08.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: configure OpenDDS
run: |
cd OpenDDS
./configure --no-debug --no-inline --features=versioned_namespace=1 --tests --security --no-rapidjson --no-built-in-topics --no-content-subscription --no-ownership-profile --no-object-model-profile --no-persistence-profile --ace=$GITHUB_WORKSPACE/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
mkdir OpenDDS/tests/cmake/build
cd OpenDDS/tests/cmake/build
cmake ..
cmake --build . -- -j4
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.sh
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
test_u22_d0i0v1_sec_js0_FM-08:
runs-on: ubuntu-22.04
needs: build_u22_d0i0v1_sec_js0_FM-08
permissions:
contents: read
id-token: write
steps:
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_d0i0v1_sec_js0_FM-08_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u22_d0i0v1_sec_js0_FM-08.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u22_d0i0v1_sec_js0_FM-08_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u22_d0i0v1_sec_js0_FM-08.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install gdb
shell: bash
run: |
sudo apt-get update
sudo apt-get install gdb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS -Config XERCES3 -Config WCHAR -Config CXX11 -Config OPENDDS_SECURITY -Config NO_BUILT_IN_TOPICS -Config DDS_NO_CONTENT_SUBSCRIPTION -Config DDS_NO_OWNERSHIP_PROFILE -Config DDS_NO_OBJECT_MODEL_PROFILE -Config DDS_NO_PERSISTENCE_PROFILE -Config NO_UNIT_TESTS --security --cmake"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_u20_clang12_i0w1_sec:
runs-on: ubuntu-20.04
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(clang++-12 --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c02_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}
- name: install xerces
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
./configure \
--ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE \
--mpc=$GITHUB_WORKSPACE/MPC \
--compiler=clang++-12 \
--std=c++11 \
--no-inline \
--features=uses_wchar=1 \
--macros=SOFLAGS+=-Wl,-h,\$\(SONAME\) \
--tests \
--security \
--compile-warnings=WARNING
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
. setenv.sh
cd ACE_TAO/ACE
make -j4
cd ../TAO
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.o" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_u20_clang12_i0w1_sec:
runs-on: ubuntu-20.04
needs: ACE_TAO_u20_clang12_i0w1_sec
steps:
- name: Update apt indexes
run: sudo apt-get -y update
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_clang12_i0w1_sec_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_clang12_i0w1_sec.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: configure OpenDDS
run: |
cd OpenDDS
./configure \
--ace=$GITHUB_WORKSPACE/ACE_TAO/ACE \
--mpc=$GITHUB_WORKSPACE/MPC \
--compiler=clang++-12 \
--std=c++11 \
--no-inline \
--features=uses_wchar=1 \
--macros=SOFLAGS+=-Wl,-h,\$\(SONAME\) \
--tests \
--security \
--rapidjson \
--compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
mkdir OpenDDS/tests/cmake/build
cd OpenDDS/tests/cmake/build
cmake -DCMAKE_CXX_STANDARD=11 -DCMAKE_CXX_COMPILER=clang++-12 ..
cmake --build . -- -j4
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.sh
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
cmake_u20_clang12_i0w1_sec:
runs-on: ubuntu-20.04
needs: build_u20_clang12_i0w1_sec
permissions:
contents: read
id-token: write
steps:
- name: Update apt indexes
run: sudo apt-get -y update
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_clang12_i0w1_sec_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_clang12_i0w1_sec.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u20_clang12_i0w1_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u20_clang12_i0w1_sec.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install lldb
shell: bash
run: |
sudo apt-get update
sudo apt-get install lldb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
echo "export ACE_TEST_DEBUGGER=lldb" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS --no-dcps --cmake"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_u20_clang10_sec_js0:
runs-on: ubuntu-20.04
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(clang++-10 --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c02_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}
- name: install xerces
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
./configure \
--ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE \
--mpc=$GITHUB_WORKSPACE/MPC \
--compiler=clang++-10 \
--std=c++11 \
--macros=SOFLAGS+=-Wl,-h,\$\(SONAME\) \
--tests \
--security \
--no-rapidjson \
--compile-warnings=WARNING
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
. setenv.sh
cd ACE_TAO/ACE
make -j4
cd ../TAO
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.o" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_u20_clang10_sec_js0:
runs-on: ubuntu-20.04
needs: ACE_TAO_u20_clang10_sec_js0
steps:
- name: Update apt indexes
run: sudo apt-get -y update
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_clang10_sec_js0_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_clang10_sec_js0.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: configure OpenDDS
run: |
cd OpenDDS
./configure \
--ace=$GITHUB_WORKSPACE/ACE_TAO/ACE \
--mpc=$GITHUB_WORKSPACE/MPC \
--compiler=clang++-10 \
--std=c++11 \
--macros=SOFLAGS+=-Wl,-h,\$\(SONAME\) \
--tests \
--security \
--no-rapidjson \
--features no_opendds_testing_features=0 \
--compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
mkdir OpenDDS/tests/cmake/build
cd OpenDDS/tests/cmake/build
cmake -DCMAKE_CXX_STANDARD=11 -DCMAKE_CXX_COMPILER=clang++-10 ..
cmake --build . -- -j4
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.sh
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
cmake_u20_clang10_sec_js0:
runs-on: ubuntu-20.04
needs: build_u20_clang10_sec_js0
permissions:
contents: read
id-token: write
steps:
- name: Update apt indexes
run: sudo apt-get -y update
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_clang10_sec_js0_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_clang10_sec_js0.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u20_clang10_sec_js0_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u20_clang10_sec_js0.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install lldb
shell: bash
run: |
sudo apt-get update
sudo apt-get install lldb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
echo "export ACE_TEST_DEBUGGER=lldb" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS --no-dcps --cmake -Config OPENDDS_TESTING_FEATURES"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_u20_gcc9_d0w1_cpp03:
runs-on: ubuntu-20.04
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: false # Otherwise this would conflict with --force-clone-submodules
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(g++-9 --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c01_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}
- name: install xerces
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
./configure \
--force-clone-submodules \
--compiler=g++-9 \
--no-debug \
--features=uses_wchar=1 \
--std=c++03 \
--tests \
--ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE \
--mpc=$GITHUB_WORKSPACE/MPC \
--compile-warnings=WARNING
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
. setenv.sh
cd ACE_TAO/ACE
make -j4
cd ../TAO
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.o" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_u20_gcc9_d0w1_cpp03:
runs-on: ubuntu-20.04
needs: ACE_TAO_u20_gcc9_d0w1_cpp03
steps:
- name: Update apt indexes
run: sudo apt-get -y update
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_gcc9_d0w1_cpp03_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_gcc9_d0w1_cpp03.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: false # Otherwise this would conflict with --force-clone-submodules
- name: configure OpenDDS
run: |
cd OpenDDS
./configure \
--force-clone-submodules \
--compiler=g++-9 \
--no-debug \
--features=uses_wchar=1 \
--std=c++03 \
--tests \
--rapidjson \
--ace=$GITHUB_WORKSPACE/ACE_TAO/ACE \
--mpc=$GITHUB_WORKSPACE/MPC \
--compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
mkdir OpenDDS/tests/cmake/build
cd OpenDDS/tests/cmake/build
cmake -DCMAKE_CXX_STANDARD=98 -DCMAKE_CXX_COMPILER=g++-9 ..
cmake --build . -- -j4
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.sh
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
cmake_u20_gcc9_d0w1_cpp03:
runs-on: ubuntu-20.04
needs: build_u20_gcc9_d0w1_cpp03
permissions:
contents: read
id-token: write
steps:
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_gcc9_d0w1_cpp03_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_gcc9_d0w1_cpp03.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u20_gcc9_d0w1_cpp03_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u20_gcc9_d0w1_cpp03.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install gdb
shell: bash
run: |
sudo apt-get update
sudo apt-get install gdb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS --no-dcps --cmake"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_u20_gcc8_i0_js0_j:
runs-on: ubuntu-20.04
steps:
- name: install gcc and g++
run: |
sudo apt-get install g++-8
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(g++-8 --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: get jdk version
shell: bash
run: |
export JDK_VERSION=$(java -version 2>&1 | grep -i version)
echo "JDK_VERSION=$JDK_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c01_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}_${{ env.JDK_VERSION }}
- name: install xerces
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
./configure --compiler=g++-8 --no-inline --no-rapidjson --tests --java --ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
. setenv.sh
cd ACE_TAO/ACE
make -j4
cd ../TAO
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.o" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_u20_gcc8_i0_js0_j:
runs-on: ubuntu-20.04
needs: ACE_TAO_u20_gcc8_i0_js0_j
steps:
- name: Update apt indexes
run: sudo apt-get -y update
- name: install gcc and g++
run: |
sudo apt-get install g++-8
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_gcc8_i0_js0_j_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_gcc8_i0_js0_j.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: configure OpenDDS
run: |
cd OpenDDS
./configure --compiler=g++-8 --no-inline --no-rapidjson --tests --java --ace=$GITHUB_WORKSPACE/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
mkdir OpenDDS/tests/cmake/build
cd OpenDDS/tests/cmake/build
cmake -DCMAKE_CXX_COMPILER=g++-8 ..
cmake --build . -- -j4
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.sh
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
cmake_u20_gcc8_i0_js0_j:
runs-on: ubuntu-20.04
needs: build_u20_gcc8_i0_js0_j
permissions:
contents: read
id-token: write
steps:
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_gcc8_i0_js0_j_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_gcc8_i0_js0_j.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u20_gcc8_i0_js0_j_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u20_gcc8_i0_js0_j.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install gdb
shell: bash
run: |
sudo apt-get update
sudo apt-get install gdb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS --no-dcps --cmake"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_u22_i0_xer0:
runs-on: ubuntu-22.04
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(g++ --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c02_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
./configure --std=c++20 --no-inline --tests --ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
. setenv.sh
cd ACE_TAO/ACE
make -j4
cd ../TAO
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.o" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_u22_i0_xer0:
runs-on: ubuntu-22.04
needs: ACE_TAO_u22_i0_xer0
steps:
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_i0_xer0_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u22_i0_xer0.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: configure OpenDDS
run: |
cd OpenDDS
./configure --std=c++20 --no-inline --tests --rapidjson --boottime --ace=$GITHUB_WORKSPACE/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
mkdir OpenDDS/tests/cmake/build
cd OpenDDS/tests/cmake/build
cmake ..
cmake --build . -- -j4
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.sh
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
test_u22_i0_xer0:
runs-on: ubuntu-22.04
needs: build_u22_i0_xer0
permissions:
contents: read
id-token: write
steps:
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_i0_xer0_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u22_i0_xer0.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u22_i0_xer0_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u22_i0_xer0.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install gdb
shell: bash
run: |
sudo apt-get update
sudo apt-get install gdb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS -Config CXX11 -Config RAPIDJSON -Config BOOTTIME_TIMERS"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_u20_gcc10_bsafe_js0_FM-2c:
runs-on: ubuntu-20.04
steps:
- name: Update apt indexes
run: sudo apt-get -y update
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(c++ --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c10_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: setup gtest
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
./configure \
--compiler=g++-10 \
--ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE \
--mpc=$GITHUB_WORKSPACE/MPC \
--gtest=$GITHUB_WORKSPACE/OpenDDS/tests/googletest/build/install \
--no-rapidjson \
--safety-profile=base \
--no-content-subscription \
--no-object-model-profile \
--no-persistence-profile \
--tests \
--compile-warnings=WARNING
- name: exclude OpenDDS_Util and opendds_idl
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/build/host
perl -ni.bak -e "print unless /dds/" host_tools.mwc
. setenv.sh
$ACE_ROOT/bin/mwc.pl -type gnuace host_tools.mwc
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS/build/host
. setenv.sh
make -j4
cd ../target
. setenv.sh
cd ACE_TAO/ACE/ace
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/build/target/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
cd $GITHUB_WORKSPACE/OpenDDS
find . -iname "*\.o" | xargs rm
tar cvf ../${{ github.job }}.tar build/host/ACE_TAO build/target/ACE_TAO build/host/setenv.sh build/host/VERSION.txt
xz -3 ../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_u20_gcc10_bsafe_js0_FM-2c:
runs-on: ubuntu-20.04
needs: ACE_TAO_u20_gcc10_bsafe_js0_FM-2c
steps:
- name: Update apt indexes
run: sudo apt-get -y update
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: setup gtest
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install
- name: configure OpenDDS
run: |
cd OpenDDS
./configure \
--compiler=g++-10 \
--ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE \
--mpc=$GITHUB_WORKSPACE/MPC \
--gtest=$GITHUB_WORKSPACE/OpenDDS/tests/googletest/build/install \
--no-rapidjson \
--safety-profile=base \
--no-content-subscription \
--no-object-model-profile \
--no-persistence-profile \
--tests \
--compile-warnings=WARNING
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_gcc10_bsafe_js0_FM-2c_artifact
path: OpenDDS
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ ACE_TAO_u20_gcc10_bsafe_js0_FM-2c.tar.xz
- uses: ammaraskar/[email protected]
- name: build OpenDDS_Util lib and opendds_idl in host
shell: bash
run: |
cd OpenDDS/build/host
cat > host_tools.mwc <<EOF
workspace {
dds/DCPS/OpenDDS_Util.mpc
dds/idl
}
EOF
. setenv.sh
$ACE_ROOT/bin/mwc.pl -type gnuace host_tools.mwc
make -j4
- name: check build configuration
shell: bash
run: |
cd OpenDDS/build/target
. setenv.sh
tools/scripts/show_build_config.pl
- name: build OpenDDS
run: |
cd OpenDDS/build/target
. setenv.sh
make -j4
- name: create OpenDDS artifact
shell: bash
run: |
cd OpenDDS/build
tar cvf ../../${{ github.job }}.tar host/dds/idl/opendds_idl
tar uvf ../../${{ github.job }}.tar host/bin/opendds_idl
tar uvf ../../${{ github.job }}.tar host/dds/DCPS/libOpenDDS_Util*
tar uvf ../../${{ github.job }}.tar host/lib/libOpenDDS_Util*
cd target
find . -iname "*\.o" | xargs rm
cd ..
tar --exclude='ACE_TAO' -uvf ../../${{ github.job }}.tar target
xz -3 ../../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
ACE_TAO_u20_acem_j_qt_ws_sec:
runs-on: ubuntu-20.04
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: false # Test that the configure script can download Google Test and RapidJSON
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(c++ --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: get jdk version
shell: bash
run: |
export JDK_VERSION=$(java -version 2>&1 | grep -i version)
echo "JDK_VERSION=$JDK_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c01_${{ github.job }}_master_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}_${{ env.JDK_VERSION }}
- name: install xerces
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
./configure --tests --security --ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
. setenv.sh
cd ACE_TAO/ACE
make -j4
cd ../TAO
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.o" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_u20_acem_j_qt_ws_sec:
runs-on: ubuntu-20.04
needs: ACE_TAO_u20_acem_j_qt_ws_sec
steps:
- name: update apt
run: sudo apt-get update
- name: install dependencies
run: sudo apt-get -y install libxerces-c-dev wireshark-dev qtbase5-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_acem_j_qt_ws_sec_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_acem_j_qt_ws_sec.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: false # Test that the configure script can download Google Test and RapidJSON
- name: configure OpenDDS
run: |
cd OpenDDS
./configure --qt --wireshark --tests --security --java --rapidjson --ace=$GITHUB_WORKSPACE/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4
- name: set up Modeling tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
cd tools/modeling/tests
./setup.pl
cd -
mwc.pl -type gnuace -workers 4 -features no_opendds_security=0 tools/modeling/tests/modeling_tests.mwc
- name: build Modeling tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4 -C tools/modeling/tests
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
mkdir OpenDDS/tests/cmake/build
cd OpenDDS/tests/cmake/build
cmake ..
cmake --build . -- -j4
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.sh
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
test_u20_acem_j_qt_ws_sec:
runs-on: ubuntu-20.04
needs: build_u20_acem_j_qt_ws_sec
permissions:
contents: read
id-token: write
steps:
- name: update apt
run: sudo apt-get update
- name: install dependencies
run: sudo apt-get -y install libxerces-c-dev wireshark-dev tshark qtbase5-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_acem_j_qt_ws_sec_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_acem_j_qt_ws_sec.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u20_acem_j_qt_ws_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u20_acem_j_qt_ws_sec.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install gdb
shell: bash
run: |
sudo apt-get update
sudo apt-get install gdb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS -Config XERCES3 -Config CXX11 -Config RAPIDJSON -Config WIRESHARK --java --modeling --cmake"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_u20_p1_asan:
runs-on: ubuntu-20.04
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(c++ --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c11_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}
- name: install xerces
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
./configure \
--ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE \
--mpc=$GITHUB_WORKSPACE/MPC \
--compiler=clang++-12 \
--std=c++11 \
--sanitize asan \
--macros=SOFLAGS+=-Wl,-h,\$\(SONAME\) \
--ipv6 \
--tests \
--security \
--compile-warnings=WARNING
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
. setenv.sh
export ASAN_OPTIONS=detect_leaks=0
cd ACE_TAO/ACE
make -j4
cd ../TAO
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.o" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_u20_p1_asan_sec:
runs-on: ubuntu-20.04
needs: ACE_TAO_u20_p1_asan
steps:
- name: Update apt indexes
run: sudo apt-get -y update
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_p1_asan_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_p1_asan.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: configure OpenDDS
run: |
cd OpenDDS
./configure \
--ace=$GITHUB_WORKSPACE/ACE_TAO/ACE \
--mpc=$GITHUB_WORKSPACE/MPC \
--compiler=clang++-12 \
--std=c++11 \
--sanitize asan \
--macros=SOFLAGS+=-Wl,-h,\$\(SONAME\) \
--ipv6 \
--tests \
--security \
--rapidjson \
--compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
export ASAN_OPTIONS=detect_leaks=0
make -j4
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
cd OpenDDS/tests/cmake
cmake -DCMAKE_CXX_COMPILER=clang++-12 -DCMAKE_CXX_STANDARD=11 -S . -B build
ASAN_OPTIONS=detect_leaks=0 cmake --build build -- -j4
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.sh
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
test_u20_p1_asan_sec:
runs-on: ubuntu-20.04
needs: build_u20_p1_asan_sec
permissions:
contents: read
id-token: write
steps:
- name: Update apt indexes
run: sudo apt-get -y update
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_p1_asan_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_p1_asan.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u20_p1_asan_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u20_p1_asan_sec.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install lldb
shell: bash
run: |
sudo apt-get update
sudo apt-get install lldb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
echo "export ACE_TEST_DEBUGGER=lldb" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS -Config IPV6 -Config XERCES3 -Config OPENDDS_SECURITY -Config CXX11 -Config RAPIDJSON --security -Config GH_ACTIONS_ASAN --cmake"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_u20_p1_tsan:
runs-on: ubuntu-20.04
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(c++ --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c11_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}
- name: install xerces
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
./configure \
--ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE \
--mpc=$GITHUB_WORKSPACE/MPC \
--compiler=clang++-12 \
--std=c++11 \
--sanitize tsan \
--ipv6 \
--tests \
--security \
--compile-warnings=WARNING
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
. setenv.sh
cd ACE_TAO/ACE
make -j4
cd ../TAO
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.o" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_u20_p1_tsan_sec:
runs-on: ubuntu-20.04
needs: ACE_TAO_u20_p1_tsan
steps:
- name: Update apt indexes
run: sudo apt-get -y update
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_p1_tsan_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_p1_tsan.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: configure OpenDDS
run: |
cd OpenDDS
./configure \
--ace=$GITHUB_WORKSPACE/ACE_TAO/ACE \
--mpc=$GITHUB_WORKSPACE/MPC \
--compiler=clang++-12 \
--std=c++11 \
--sanitize tsan \
--ipv6 \
--tests \
--security \
--rapidjson \
--compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.sh
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
test_u20_p1_tsan_sec:
runs-on: ubuntu-20.04
needs: build_u20_p1_tsan_sec
permissions:
contents: read
id-token: write
steps:
- name: Update apt indexes
run: sudo apt-get -y update
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_p1_tsan_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_p1_tsan.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u20_p1_tsan_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u20_p1_tsan_sec.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install lldb
shell: bash
run: |
sudo apt-get update
sudo apt-get install lldb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
echo "export ACE_TEST_DEBUGGER=lldb" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS -Config IPV6 -Config XERCES3 -Config OPENDDS_SECURITY -Config CXX11 -Config RAPIDJSON --no-dcps tests/tsan_tests.lst"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_u20_p1_ubsan:
runs-on: ubuntu-20.04
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(c++ --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c11_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}
- name: install xerces
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
./configure \
--ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE \
--mpc=$GITHUB_WORKSPACE/MPC \
--compiler=clang++-12 \
--std=c++11 \
--sanitize ubsan \
--features=no_hidden_visibility=1 \
--macros=SOFLAGS+=-Wl,-h,\$\(SONAME\) \
--ipv6 \
--tests \
--security \
--compile-warnings=WARNING
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
. setenv.sh
cd ACE_TAO/ACE
make -j2
cd ../TAO
make -j2
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.o" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_u20_p1_ubsan_sec:
runs-on: ubuntu-20.04
needs: ACE_TAO_u20_p1_ubsan
steps:
- name: Update apt indexes
run: sudo apt-get -y update
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_p1_ubsan_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_p1_ubsan.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: configure OpenDDS
run: |
cd OpenDDS
sed -i 's/DevGuideExamples/tests\/unit-tests/' DDS_no_tests.mwc
./configure \
--ace=$GITHUB_WORKSPACE/ACE_TAO/ACE \
--mpc=$GITHUB_WORKSPACE/MPC \
--compiler=clang++-12 \
--std=c++11 \
--gtest \
--sanitize ubsan \
--features=no_hidden_visibility=1 \
--macros=SOFLAGS+=-Wl,-h,\$\(SONAME\) \
--ipv6 \
--security \
--rapidjson \
--compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j2
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
cd OpenDDS/tests/cmake
cmake -DCMAKE_CXX_COMPILER=clang++-12 -DCMAKE_CXX_STANDARD=11 -S . -B build
cmake --build build -- -j2
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.sh
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
test_u20_p1_ubsan_sec:
runs-on: ubuntu-20.04
needs: build_u20_p1_ubsan_sec
permissions:
contents: read
id-token: write
steps:
- name: Update apt indexes
run: sudo apt-get -y update
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_p1_ubsan_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_p1_ubsan.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u20_p1_ubsan_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u20_p1_ubsan_sec.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install lldb
shell: bash
run: |
sudo apt-get update
sudo apt-get install lldb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
echo "export ACE_TEST_DEBUGGER=lldb" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS -Config IPV6 -Config XERCES3 -Config OPENDDS_SECURITY -Config CXX11 -Config RAPIDJSON --no-dcps tests/ubsan_tests.lst"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_u20_p1:
runs-on: ubuntu-20.04
needs: openssl3_u20
steps:
- name: download openssl artifact
uses: actions/download-artifact@v4
with:
name: openssl3_u20_artifact
- name: extract openssl artifact
shell: bash
run: |
tar xvJf openssl3_u20.tar.xz
rm -f openssl3_u20.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(c++ --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: get jdk version
shell: bash
run: |
export JDK_VERSION=$(java -version 2>&1 | grep -i version)
echo "JDK_VERSION=$JDK_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c06_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}_${{ env.JDK_VERSION }}
- name: install xerces
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
SSL_DIR=$PWD/openssl_install
cd OpenDDS
./configure --ipv6 --tests --security --openssl=$SSL_DIR --ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
. setenv.sh
cd ACE_TAO/ACE
make -j4
cd ../TAO
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.o" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_u20_p1_sec:
runs-on: ubuntu-20.04
needs: ACE_TAO_u20_p1
steps:
- name: download openssl artifact
uses: actions/download-artifact@v4
with:
name: openssl3_u20_artifact
- name: extract openssl artifact
shell: bash
run: |
tar xvJf openssl3_u20.tar.xz
rm -f openssl3_u20.tar.xz
- name: Update apt indexes
run: sudo apt-get -y update
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_p1_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_p1.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: configure OpenDDS
run: |
SSL_DIR=$PWD/openssl_install
export SSL_LIBDIR=$SSL_DIR/lib64
cd OpenDDS
./configure --ipv6 --tests --security --openssl=$SSL_DIR --rapidjson --ace=$GITHUB_WORKSPACE/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
echo "export SSL_LIBDIR=$SSL_LIBDIR" >> setenv.sh
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
mkdir OpenDDS/tests/cmake/build
cd OpenDDS/tests/cmake/build
cmake ..
cmake --build . -- -j4
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.sh
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
test_u20_p1_sec:
runs-on: ubuntu-20.04
needs: build_u20_p1_sec
permissions:
contents: read
id-token: write
steps:
- name: download openssl artifact
uses: actions/download-artifact@v4
with:
name: openssl3_u20_artifact
- name: extract openssl artifact
shell: bash
run: |
tar xvJf openssl3_u20.tar.xz
rm -f openssl3_u20.tar.xz
- name: Update apt indexes
run: sudo apt-get -y update
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_p1_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_p1.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u20_p1_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u20_p1_sec.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install gdb
shell: bash
run: |
sudo apt-get update
sudo apt-get install gdb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS -Config IPV6 -Config XERCES3 -Config OPENDDS_SECURITY -Config CXX11 -Config RAPIDJSON --security --cmake"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
valgrind_u20_p1_sec:
runs-on: ubuntu-20.04
needs: build_u20_p1_sec
permissions:
contents: read
id-token: write
steps:
- name: download openssl artifact
uses: actions/download-artifact@v4
with:
name: openssl3_u20_artifact
- name: extract openssl artifact
shell: bash
run: |
tar xvJf openssl3_u20.tar.xz
rm -f openssl3_u20.tar.xz
- name: Update apt indexes
run: sudo apt-get -y update
- name: install xerces and valgrind
run: sudo apt-get -y install libxerces-c-dev valgrind
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_p1_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_p1.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u20_p1_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u20_p1_sec.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_RUN_VALGRIND_CMD=\"valgrind --leak-check=yes --show-leak-kinds=definite --errors-for-leak-kinds=definite --num-callers=50 --error-exitcode=86\"" >> setenv.sh
echo "export ACE_RUNTEST_DELAY=10" >> setenv.sh
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
echo "export ACE_TEST_DEBUGGER=lldb" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS -Config IPV6 -Config XERCES3 -Config OPENDDS_SECURITY -Config CXX11 -Config RAPIDJSON --no-dcps tests/valgrind_tests.lst"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
build_u20_p1_j8_FM-1f:
runs-on: ubuntu-20.04
needs: ACE_TAO_u20_p1
steps:
- name: Update apt indexes
run: sudo apt-get -y update
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_p1_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_p1.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: configure OpenDDS
run: |
cd OpenDDS
./configure --tests --java=$JAVA_HOME_8_X64 --no-built-in-topics --rapidjson --ace=$GITHUB_WORKSPACE/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
mkdir OpenDDS/tests/cmake/build
cd OpenDDS/tests/cmake/build
cmake ..
cmake --build . -- -j4
- name: set up Modeling tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
cd tools/modeling/tests
./setup.pl
cd -
mwc.pl -type gnuace -workers 4 -features built_in_topics=0 -features ipv6=1 tools/modeling/tests/modeling_tests.mwc
- name: build Modeling tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4 -C tools/modeling/tests
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.sh
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
test_u20_p1_j8_FM-1f:
runs-on: ubuntu-20.04
needs: build_u20_p1_j8_FM-1f
permissions:
contents: read
id-token: write
steps:
- name: Update apt indexes
run: sudo apt-get -y update
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u20_p1_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u20_p1.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u20_p1_j8_FM-1f_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u20_p1_j8_FM-1f.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install gdb
shell: bash
run: |
sudo apt-get update
sudo apt-get install gdb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS -Config IPV6 -Config CXX11 -Config RAPIDJSON -Config NO_BUILT_IN_TOPICS -Config NO_UNIT_TESTS --modeling --cmake"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_u22_w1:
runs-on: ubuntu-22.04
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(c++ --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: get jdk version
shell: bash
run: |
export JDK_VERSION=$(java -version 2>&1 | grep -i version)
echo "JDK_VERSION=$JDK_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c01_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}_${{ env.JDK_VERSION }}
- name: install xerces
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
./configure --features=uses_wchar=1 --tests --security --ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
. setenv.sh
cd ACE_TAO/ACE
make -j4
cd ../TAO
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.o" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_u22_w1a1_sec:
runs-on: ubuntu-22.04
needs: ACE_TAO_u22_w1
steps:
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_w1_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u22_w1.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: configure OpenDDS
run: |
cd OpenDDS
./configure --features=uses_wchar=1 --features dds_suppress_anys=0 --tests --security --rapidjson --ace=$GITHUB_WORKSPACE/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
mkdir OpenDDS/tests/cmake/build
cd OpenDDS/tests/cmake/build
cmake ..
cmake --build . -- -j4
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.sh
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
test_u22_w1a1_sec:
runs-on: ubuntu-22.04
needs: build_u22_w1a1_sec
permissions:
contents: read
id-token: write
steps:
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_w1_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u22_w1.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u22_w1a1_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u22_w1a1_sec.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install gdb
shell: bash
run: |
sudo apt-get update
sudo apt-get install gdb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS -Config WCHAR -Config XERCES3 -Config OPENDDS_SECURITY -Config CXX11 -Config RAPIDJSON -Config NO_UNIT_TESTS --security --cmake"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
build_u22_w1_j_FM-2f:
runs-on: ubuntu-22.04
needs: ACE_TAO_u22_w1
steps:
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_w1_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u22_w1.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: configure OpenDDS
run: |
cd OpenDDS
./configure --features=uses_wchar=1 --tests --java --no-content-subscription --rapidjson --ace=$GITHUB_WORKSPACE/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
mkdir OpenDDS/tests/cmake/build
cd OpenDDS/tests/cmake/build
cmake ..
cmake --build . -- -j4
- name: set up Modeling tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
cd tools/modeling/tests
./setup.pl
cd -
mwc.pl -type gnuace -workers 4 -features content_subscription=0 tools/modeling/tests/modeling_tests.mwc
- name: build Modeling tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4 -C tools/modeling/tests
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.sh
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
test_u22_w1_j_FM-2f:
runs-on: ubuntu-22.04
needs: build_u22_w1_j_FM-2f
permissions:
contents: read
id-token: write
steps:
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_w1_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u22_w1.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u22_w1_j_FM-2f_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u22_w1_j_FM-2f.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install gdb
shell: bash
run: |
sudo apt-get update
sudo apt-get install gdb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS -Config WCHAR -Config CXX11 -Config RAPIDJSON -Config DDS_NO_CONTENT_SUBSCRIPTION -Config NO_UNIT_TESTS --java --modeling --cmake"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_u22_stat_qt_ws_sec:
runs-on: ubuntu-22.04
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(c++ --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c02_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}
- name: install xerces
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
if: steps.cache-artifact.outputs.cache-hit != 'true'
with:
repository: DOCGroup/MPC
path: MPC
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
./configure --static --tests --security --ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
. setenv.sh
cd ACE_TAO/ACE
make -j4
cd ../TAO
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
find . -iname "*\.o" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_u22_stat_qt_ws_sec:
runs-on: ubuntu-22.04
needs: ACE_TAO_u22_stat_qt_ws_sec
steps:
- name: update apt
run: sudo apt-get update
- name: install dependencies
run: sudo apt-get -y install libxerces-c-dev wireshark-dev qtbase5-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_stat_qt_ws_sec_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u22_stat_qt_ws_sec.tar.xz
rm ACE_TAO_u22_stat_qt_ws_sec.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: setup gtest
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install
- name: configure OpenDDS
run: |
cd OpenDDS
./configure --static --qt --wireshark --security --rapidjson --gtest=$GITHUB_WORKSPACE/OpenDDS/tests/googletest/build/install --ace=$GITHUB_WORKSPACE/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.sh
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
cmake_u22_stat_qt_ws_sec:
runs-on: ubuntu-22.04
needs: build_u22_stat_qt_ws_sec
permissions:
contents: read
id-token: write
steps:
- name: update apt
run: sudo apt-get update
- name: install dependencies
run: sudo apt-get -y install libxerces-c-dev wireshark-dev qtbase5-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_stat_qt_ws_sec_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u22_stat_qt_ws_sec.tar.xz
rm ACE_TAO_u22_stat_qt_ws_sec.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u22_stat_qt_ws_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u22_stat_qt_ws_sec.tar.xz
rm build_u22_stat_qt_ws_sec.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install gdb
shell: bash
run: |
sudo apt-get update
sudo apt-get install gdb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- uses: ammaraskar/[email protected]
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
mkdir OpenDDS/tests/cmake/build
cd OpenDDS/tests/cmake/build
cmake ..
cmake --build . -- -j4
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS --no-dcps --cmake"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
messenger_u22_stat_qt_ws_sec:
runs-on: ubuntu-22.04
needs: build_u22_stat_qt_ws_sec
permissions:
contents: read
id-token: write
steps:
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: update apt
run: sudo apt-get update
- name: install qt
run: sudo apt-get -y install qtbase5-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_stat_qt_ws_sec_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u22_stat_qt_ws_sec.tar.xz
rm ACE_TAO_u22_stat_qt_ws_sec.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u22_stat_qt_ws_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u22_stat_qt_ws_sec.tar.xz
rm build_u22_stat_qt_ws_sec.tar.xz
- name: setup gtest
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install gdb
shell: bash
run: |
sudo apt-get update
sudo apt-get install gdb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: configure messenger tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
cd tests/DCPS/Messenger
perl $ACE_ROOT/bin/mwc.pl -type gnuace -static
- uses: ammaraskar/[email protected]
- name: make messenger tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
cd tests/DCPS/Messenger
make
- name: configure C++11 messenger test
shell: bash
run: |
cd OpenDDS
. setenv.sh
cd tests/DCPS/C++11
perl $ACE_ROOT/bin/mwc.pl -type gnuace -static
- name: make C++11 messenger test
shell: bash
run: |
cd OpenDDS
. setenv.sh
cd tests/DCPS/C++11
make
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS tests/core_ci_tests.lst -Config STATIC_MESSENGER -Config STATIC -Config XERCES3 -Config OPENDDS_SECURITY -Config RAPIDJSON -Config CXX11 -Config NO_UNIT_TESTS"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
compiler_u22_stat_qt_ws_sec:
runs-on: ubuntu-22.04
needs: build_u22_stat_qt_ws_sec
permissions:
contents: read
id-token: write
steps:
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: update apt
run: sudo apt-get update
- name: install qt
run: sudo apt-get -y install qtbase5-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_stat_qt_ws_sec_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u22_stat_qt_ws_sec.tar.xz
rm ACE_TAO_u22_stat_qt_ws_sec.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u22_stat_qt_ws_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u22_stat_qt_ws_sec.tar.xz
rm build_u22_stat_qt_ws_sec.tar.xz
- name: setup gtest
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install gdb
shell: bash
run: |
sudo apt-get update
sudo apt-get install gdb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: configure compiler tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
cd tests/DCPS/Compiler
perl $ACE_ROOT/bin/mwc.pl -type gnuace -static
- uses: ammaraskar/[email protected]
- name: make compiler tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
cd tests/DCPS/Compiler
make
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS tests/core_ci_tests.lst -Config STATIC_COMPILER -Config STATIC_COMPILER2 -Config STATIC -Config XERCES3 -Config OPENDDS_SECURITY -Config RAPIDJSON -Config CXX11 -Config NO_UNIT_TESTS"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
unit_u22_stat_qt_ws_sec:
runs-on: ubuntu-22.04
needs: build_u22_stat_qt_ws_sec
permissions:
contents: read
id-token: write
steps:
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: update apt
run: sudo apt-get update
- name: install qt
run: sudo apt-get -y install qtbase5-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_stat_qt_ws_sec_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u22_stat_qt_ws_sec.tar.xz
rm ACE_TAO_u22_stat_qt_ws_sec.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u22_stat_qt_ws_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u22_stat_qt_ws_sec.tar.xz
rm build_u22_stat_qt_ws_sec.tar.xz
- name: setup gtest
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install gdb
shell: bash
run: |
sudo apt-get update
sudo apt-get install gdb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: configure unit tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
cd tests/unit-tests
perl $ACE_ROOT/bin/mwc.pl -type gnuace -static
- uses: ammaraskar/[email protected]
- name: make unit tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
cd tests/unit-tests
make
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS tests/core_ci_tests.lst -Config STATIC_UNIT_TESTS -Config STATIC -Config XERCES3 -Config OPENDDS_SECURITY -Config RAPIDJSON -Config CXX11"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
security_u22_stat_qt_ws_sec:
runs-on: ubuntu-22.04
needs: build_u22_stat_qt_ws_sec
timeout-minutes: 150
permissions:
contents: read
id-token: write
steps:
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: update apt
run: sudo apt-get update
- name: install qt
run: sudo apt-get -y install qtbase5-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_stat_qt_ws_sec_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u22_stat_qt_ws_sec.tar.xz
rm ACE_TAO_u22_stat_qt_ws_sec.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u22_stat_qt_ws_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u22_stat_qt_ws_sec.tar.xz
rm build_u22_stat_qt_ws_sec.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install gdb
shell: bash
run: |
sudo apt-get update
sudo apt-get install gdb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: configure security tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
cd tests/security/attributes
perl $ACE_ROOT/bin/mwc.pl -type gnuace -static
- uses: ammaraskar/[email protected]
- name: build security tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
cd tests/security/attributes
make -j $(getconf _NPROCESSORS_ONLN)
- name: run security tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS tests/core_ci_tests.lst -Config STATIC_SECURITY"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_u22_j_cft0_FM-37:
runs-on: ubuntu-22.04
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(c++ --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: get jdk version
shell: bash
run: |
export JDK_VERSION=$(java -version 2>&1 | grep -i version)
echo "JDK_VERSION=$JDK_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c01_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}_${{ env.JDK_VERSION }}
- name: install xerces
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
if: steps.cache-artifact.outputs.cache-hit != 'true'
with:
repository: DOCGroup/MPC
path: MPC
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
./configure --tests --security --ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
. setenv.sh
cd ACE_TAO/ACE
make -j4
cd ../TAO
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.o" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_u22_j_cft0_FM-37:
runs-on: ubuntu-22.04
needs: ACE_TAO_u22_j_cft0_FM-37
steps:
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_j_cft0_FM-37_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u22_j_cft0_FM-37.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: configure OpenDDS
run: |
cd OpenDDS
./configure --tests --java --no-content-filtered-topic --rapidjson --ace=$GITHUB_WORKSPACE/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
mkdir OpenDDS/tests/cmake/build
cd OpenDDS/tests/cmake/build
cmake ..
cmake --build . -- -j4
- name: set up Modeling tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
cd tools/modeling/tests
./setup.pl
cd -
mwc.pl -type gnuace -workers 4 -features content_filtered_topic=0 tools/modeling/tests/modeling_tests.mwc
- name: build Modeling tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4 -C tools/modeling/tests
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.sh
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
test_u22_j_cft0_FM-37:
runs-on: ubuntu-22.04
needs: build_u22_j_cft0_FM-37
permissions:
contents: read
id-token: write
steps:
- name: install xerces
run: sudo apt-get -y install libxerces-c-dev
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_u22_j_cft0_FM-37_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_u22_j_cft0_FM-37.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_u22_j_cft0_FM-37_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_u22_j_cft0_FM-37.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: install gdb
shell: bash
run: |
sudo apt-get update
sudo apt-get install gdb
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: change core file pattern
shell: bash
run: |
sudo sysctl -w kernel.core_pattern=core.%e.%p
echo Core file pattern set to:
cat /proc/sys/kernel/core_pattern
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS -Config RAPIDJSON -Config DDS_NO_CONTENT_FILTERED_TOPIC --modeling --cmake"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_w19_p1_stat_js0:
runs-on: windows-2019
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$("C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -property catalog_productDisplayVersion)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c01_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}
- name: setup for run-vcpkg
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
- name: install openssl & xerces-c
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: set up msvc env
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: ilammy/msvc-dev-cmd@v1
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: cmd
run: |
cd OpenDDS
configure --ipv6 --static --no-rapidjson --ace=${{ github.workspace }}/OpenDDS/ACE_TAO/ACE --tao=${{ github.workspace }}/OpenDDS/ACE_TAO/TAO --mpc=${{ github.workspace }}/MPC --xerces3=${{ env.VCPKG_INSTALLED_DIR }}/x64-windows --openssl=${{ env.VCPKG_INSTALLED_DIR }}/x64-windows --mpcopts=-hierarchy --compile-warnings=WARNING
- name: build ACE & TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ACE_TAO\ACE
msbuild -p:Configuration=Debug,Platform=x64 -m ace.sln
cd ..\TAO
msbuild -p:Configuration=Debug,Platform=x64 -m tao.sln
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.obj" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_w19_p1_stat_js0:
runs-on: windows-2019
needs: ACE_TAO_w19_p1_stat_js0
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
- name: install openssl & xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_p1_stat_js0_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_p1_stat_js0.tar.xz
rm -f ACE_TAO_w19_p1_stat_js0.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install
- name: configure OpenDDS
shell: cmd
run: |
cd OpenDDS
configure --ipv6 --static --no-rapidjson --gtest=${{ github.workspace }}/OpenDDS/tests/googletest/build/install --ace=${{ github.workspace }}/OpenDDS/ACE_TAO/ACE --tao=${{ github.workspace }}/OpenDDS/ACE_TAO/TAO --mpc=${{ github.workspace }}/MPC --xerces3=${{ env.VCPKG_INSTALLED_DIR }}/x64-windows --openssl=${{ env.VCPKG_INSTALLED_DIR }}/x64-windows --compile-warnings=WARNING
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
msbuild -p:Configuration=Debug,Platform=x64 -m DDS_no_tests.sln
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.obj" -o -iname "*\.pdb" -o -iname "*\.idb" -o -type f -iname "*\.tlog" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.cmd
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
cmake_w19_p1_stat_js0:
runs-on: windows-2019
needs: build_w19_p1_stat_js0
permissions:
contents: read
id-token: write
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
- name: install openssl & xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_p1_stat_js0_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_p1_stat_js0.tar.xz
rm -f ACE_TAO_w19_p1_stat_js0.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w19_p1_stat_js0_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w19_p1_stat_js0.tar.xz
rm -f build_w19_p1_stat_js0.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- uses: ammaraskar/[email protected]
- name: Build CMake Tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
mkdir tests\cmake\build
cd tests\cmake\build
cmake ..
cmake --build .
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS --no-dcps --cmake"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
messenger_w19_p1_stat_js0:
runs-on: windows-2019
needs: build_w19_p1_stat_js0
permissions:
contents: read
id-token: write
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
- name: install openssl & xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_p1_stat_js0_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_p1_stat_js0.tar.xz
rm -f ACE_TAO_w19_p1_stat_js0.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w19_p1_stat_js0_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w19_p1_stat_js0.tar.xz
rm -f build_w19_p1_stat_js0.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: configure messenger tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Messenger
perl %ACE_ROOT%\bin\mwc.pl -type vs2019 -static -features no_rapidjson=1 -features ipv6=1 -features ssl=1 -features no_cxx11=0
- uses: ammaraskar/[email protected]
- name: make messenger tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Messenger
msbuild -p:Configuration=Debug,Platform=x64 -m Messenger.sln
- name: configure C++11 messenger test
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\C++11
perl %ACE_ROOT%\bin\mwc.pl -type vs2019 -static -features no_rapidjson=1 -features ipv6=1 -features ssl=1 -features no_cxx11=0
- name: make C++11 messenger test
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\C++11
msbuild -p:Configuration=Debug,Platform=x64 -m C++11.sln
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS tests\core_ci_tests.lst -ExeSubDir Static_Debug -Config STATIC_MESSENGER -Config IPV6 -Config XERCES3 -Config CXX11 -Config NO_UNIT_TESTS"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
compiler_w19_p1_stat_js0:
runs-on: windows-2019
needs: build_w19_p1_stat_js0
permissions:
contents: read
id-token: write
steps:
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_p1_stat_js0_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_p1_stat_js0.tar.xz
rm -f ACE_TAO_w19_p1_stat_js0.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w19_p1_stat_js0_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w19_p1_stat_js0.tar.xz
rm -f build_w19_p1_stat_js0.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: configure compiler tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Compiler
rm -rf key_annotation
rm -rf keywords
rm -rf namespace_conflict
rm -rf vread_vwrite
rm -rf sequence_conflict
rm -rf TryConstruct
rm -rf typecode
rm -rf typeobject_hash_consistency
rm -rf underscore_fields
rm -rf xcdr
rm -rf XTypesExtensibility
perl %ACE_ROOT%\bin\mwc.pl -type vs2019 -static -features no_rapidjson=1 -features ipv6=1 -features no_cxx11=0
- uses: ammaraskar/[email protected]
- name: make compiler tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Compiler
dir
msbuild -p:Configuration=Debug,Platform=x64 -m Compiler.sln
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS tests\core_ci_tests.lst -ExeSubDir Static_Debug -Config STATIC_COMPILER -Config IPV6 -Config XERCES3 -Config CXX11 -Config NO_UNIT_TESTS"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
compiler2_w19_p1_stat_js0:
runs-on: windows-2019
needs: build_w19_p1_stat_js0
permissions:
contents: read
id-token: write
steps:
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_p1_stat_js0_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_p1_stat_js0.tar.xz
rm -f ACE_TAO_w19_p1_stat_js0.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w19_p1_stat_js0_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w19_p1_stat_js0.tar.xz
rm -f build_w19_p1_stat_js0.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: configure compiler tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Compiler
rm -rf anonymous_types
rm -rf C++11
rm -rf char_literals
rm -rf explicit_ints
rm -rf idl_test1_lib
rm -rf idl_test1_main
rm -rf idl_test2_lib
rm -rf idl_test2_main
rm -rf idl_test3_lib
rm -rf idl_test3_main
rm -rf idl_test_nested_types_lib
rm -rf isolated_types
rm -rf is_topic_type
perl %ACE_ROOT%\bin\mwc.pl -type vs2019 -static -features no_rapidjson=1 -features ipv6=1 -features no_cxx11=0
- uses: ammaraskar/[email protected]
- name: make compiler tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Compiler
dir
msbuild -p:Configuration=Debug,Platform=x64 -m Compiler.sln
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS tests\core_ci_tests.lst -ExeSubDir Static_Debug -Config STATIC_COMPILER2 -Config IPV6 -Config XERCES3 -Config CXX11 -Config NO_UNIT_TESTS"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
unit_w19_p1_stat_js0:
runs-on: windows-2019
needs: build_w19_p1_stat_js0
permissions:
contents: read
id-token: write
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
- name: install openssl & xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_p1_stat_js0_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_p1_stat_js0.tar.xz
rm -f ACE_TAO_w19_p1_stat_js0.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w19_p1_stat_js0_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w19_p1_stat_js0.tar.xz
rm -f build_w19_p1_stat_js0.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: configure unit tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\unit-tests
perl %ACE_ROOT%\bin\mwc.pl -type vs2019 -static -features no_rapidjson=1 -features ipv6=1 -features ssl=1 -features no_cxx11=0
- uses: ammaraskar/[email protected]
- name: make unit tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\unit-tests
msbuild -p:Configuration=Debug,Platform=x64 -m unit_tests.sln
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS tests\core_ci_tests.lst -ExeSubDir Static_Debug -Config STATIC_UNIT_TESTS -Config IPV6 -Config XERCES3 -Config CXX11"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_w19_re_p1_stat_FM-08:
runs-on: windows-2019
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$("C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -property catalog_productDisplayVersion)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c01_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}
- name: setup for run-vcpkg
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
- name: install openssl & xerces-c
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: set up msvc env
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: ilammy/msvc-dev-cmd@v1
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: cmd
run: |
cd OpenDDS
configure --ipv6 --static --rapidjson --no-built-in-topics --no-content-subscription --no-ownership-profile --no-object-model-profile --no-persistence-profile --ace=${{ github.workspace }}/OpenDDS/ACE_TAO/ACE --tao=${{ github.workspace }}/OpenDDS/ACE_TAO/TAO --mpc=${{ github.workspace }}/MPC --xerces3=${{ env.VCPKG_INSTALLED_DIR }}/x64-windows --openssl=${{ env.VCPKG_INSTALLED_DIR }}/x64-windows --mpcopts=-hierarchy --compile-warnings=WARNING
- name: build ACE & TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ACE_TAO\ACE
msbuild -p:Configuration=Release,Platform=x64 -m ace.sln
cd ..\TAO
msbuild -p:Configuration=Release,Platform=x64 -m tao.sln
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.obj" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_w19_re_p1_stat_FM-08:
runs-on: windows-2019
needs: ACE_TAO_w19_re_p1_stat_FM-08
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
- name: install openssl & xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_re_p1_stat_FM-08_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_re_p1_stat_FM-08.tar.xz
rm -f ACE_TAO_w19_re_p1_stat_FM-08.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install --config Release
- name: configure OpenDDS
shell: cmd
run: |
cd OpenDDS
configure --ipv6 --static --rapidjson --gtest=${{ github.workspace }}/OpenDDS/tests/googletest/build/install --no-built-in-topics --no-content-subscription --no-ownership-profile --no-object-model-profile --no-persistence-profile --ace=${{ github.workspace }}/OpenDDS/ACE_TAO/ACE --tao=${{ github.workspace }}/OpenDDS/ACE_TAO/TAO --mpc=${{ github.workspace }}/MPC --xerces3=${{ env.VCPKG_INSTALLED_DIR }}/x64-windows --openssl=${{ env.VCPKG_INSTALLED_DIR }}/x64-windows --compile-warnings=WARNING
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
msbuild -p:Configuration=Release,Platform=x64 -m DDS_no_tests.sln
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.obj" -o -iname "*\.pdb" -o -iname "*\.idb" -o -type f -iname "*\.tlog" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.cmd
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
cmake_w19_re_p1_stat_FM-08:
runs-on: windows-2019
needs: build_w19_re_p1_stat_FM-08
permissions:
contents: read
id-token: write
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
- name: install openssl & xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_re_p1_stat_FM-08_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_re_p1_stat_FM-08.tar.xz
rm -f ACE_TAO_w19_re_p1_stat_FM-08.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w19_re_p1_stat_FM-08_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w19_re_p1_stat_FM-08.tar.xz
rm -f build_w19_re_p1_stat_FM-08.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- uses: ammaraskar/[email protected]
- name: Build CMake Tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
mkdir tests\cmake\build
cd tests\cmake\build
cmake ..
cmake --build . --config Release
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS --no-dcps --cmake --cmake-build-cfg Release"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
messenger_w19_re_p1_stat_FM-08:
runs-on: windows-2019
needs: build_w19_re_p1_stat_FM-08
permissions:
contents: read
id-token: write
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
- name: install openssl & xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_re_p1_stat_FM-08_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_re_p1_stat_FM-08.tar.xz
rm -f ACE_TAO_w19_re_p1_stat_FM-08.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w19_re_p1_stat_FM-08_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w19_re_p1_stat_FM-08.tar.xz
rm -f build_w19_re_p1_stat_FM-08.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install --config Release
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: configure messenger tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Messenger
perl %ACE_ROOT%\bin\mwc.pl -type vs2019 -static -features ipv6=1 -features no_cxx11=0 -features xerces3=1 -features no_rapidjson=0 -features ssl=1 -features openssl11=1 -features built_in_topics=0 -features ownership_profile=0 -features content_subscription=0 -features object_model_profile=0 -features persistence_profile=0
- uses: ammaraskar/[email protected]
- name: make messenger tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Messenger
msbuild -p:Configuration=Release,Platform=x64 -m Messenger.sln
- name: configure C++11 messenger test
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\C++11
perl %ACE_ROOT%\bin\mwc.pl -type vs2019 -static -features ipv6=1 -features no_cxx11=0 -features xerces3=1 -features no_rapidjson=0 -features ssl=1 -features openssl11=1 -features built_in_topics=0 -features ownership_profile=0 -features content_subscription=0 -features object_model_profile=0 -features persistence_profile=0
- name: make C++11 messenger test
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\C++11
msbuild -p:Configuration=Release,Platform=x64 -m C++11.sln
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS tests\core_ci_tests.lst -ExeSubDir Static_Release -Config STATIC -Config STATIC_MESSENGER -Config NO_BUILT_IN_TOPICS -Config DDS_NO_OBJECT_MODEL_PROFILE -Config DDS_NO_OWNERSHIP_PROFILE -Config DDS_NO_PERSISTENCE_PROFILE -Config DDS_NO_CONTENT_SUBSCRIPTION -Config IPV6 -Config CXX11 -Config OPENDDS_SECURITY -Config RAPIDJSON -Config NO_UNIT_TESTS"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
compiler_w19_re_p1_stat_FM-08:
runs-on: windows-2019
needs: build_w19_re_p1_stat_FM-08
permissions:
contents: read
id-token: write
steps:
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_re_p1_stat_FM-08_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_re_p1_stat_FM-08.tar.xz
rm -f ACE_TAO_w19_re_p1_stat_FM-08.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w19_re_p1_stat_FM-08_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w19_re_p1_stat_FM-08.tar.xz
rm -f build_w19_re_p1_stat_FM-08.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install --config Release
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: configure compiler tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Compiler
rm -rf key_annotation
rm -rf keywords
rm -rf namespace_conflict
rm -rf vread_vwrite
rm -rf sequence_conflict
rm -rf TryConstruct
rm -rf typecode
rm -rf typeobject_hash_consistency
rm -rf underscore_fields
rm -rf xcdr
rm -rf XTypesExtensibility
perl %ACE_ROOT%\bin\mwc.pl -type vs2019 -static -features ipv6=1 -features no_cxx11=0 -features no_rapidjson=0 -features openssl11=1 -features built_in_topics=0 -features ownership_profile=0 -features content_subscription=0 -features object_model_profile=0 -features persistence_profile=0
- uses: ammaraskar/[email protected]
- name: make compiler tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Compiler
msbuild -p:Configuration=Release,Platform=x64 -m Compiler.sln
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS tests\core_ci_tests.lst -ExeSubDir Static_Release -Config STATIC_COMPILER -Config STATIC -Config NO_BUILT_IN_TOPICS -Config DDS_NO_OBJECT_MODEL_PROFILE -Config DDS_NO_OWNERSHIP_PROFILE -Config DDS_NO_PERSISTENCE_PROFILE -Config DDS_NO_CONTENT_SUBSCRIPTION -Config IPV6 -Config OPENDDS_SECURITY -Config RAPIDJSON -Config CXX11 -Config NO_UNIT_TESTS"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
compiler2_w19_re_p1_stat_FM-08:
runs-on: windows-2019
needs: build_w19_re_p1_stat_FM-08
permissions:
contents: read
id-token: write
steps:
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_re_p1_stat_FM-08_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_re_p1_stat_FM-08.tar.xz
rm -f ACE_TAO_w19_re_p1_stat_FM-08.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w19_re_p1_stat_FM-08_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w19_re_p1_stat_FM-08.tar.xz
rm -f build_w19_re_p1_stat_FM-08.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install --config Release
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: configure compiler tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Compiler
rm -rf anonymous_types
rm -rf C++11
rm -rf char_literals
rm -rf explicit_ints
rm -rf idl_test1_lib
rm -rf idl_test1_main
rm -rf idl_test2_lib
rm -rf idl_test2_main
rm -rf idl_test3_lib
rm -rf idl_test3_main
rm -rf idl_test_nested_types_lib
rm -rf isolated_types
rm -rf is_topic_type
perl %ACE_ROOT%\bin\mwc.pl -type vs2019 -static -features ipv6=1 -features no_cxx11=0 -features no_rapidjson=0 -features openssl11=1 -features built_in_topics=0 -features ownership_profile=0 -features content_subscription=0 -features object_model_profile=0 -features persistence_profile=0
- uses: ammaraskar/[email protected]
- name: make compiler tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Compiler
msbuild -p:Configuration=Release,Platform=x64 -m Compiler.sln
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS tests\core_ci_tests.lst -ExeSubDir Static_Release -Config STATIC_COMPILER2 -Config STATIC -Config NO_BUILT_IN_TOPICS -Config DDS_NO_OBJECT_MODEL_PROFILE -Config DDS_NO_OWNERSHIP_PROFILE -Config DDS_NO_PERSISTENCE_PROFILE -Config DDS_NO_CONTENT_SUBSCRIPTION -Config IPV6 -Config OPENDDS_SECURITY -Config RAPIDJSON -Config CXX11 -Config NO_UNIT_TESTS"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
unit_w19_re_p1_stat_FM-08:
runs-on: windows-2019
needs: build_w19_re_p1_stat_FM-08
permissions:
contents: read
id-token: write
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
- name: install openssl & xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_re_p1_stat_FM-08_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_re_p1_stat_FM-08.tar.xz
rm -f ACE_TAO_w19_re_p1_stat_FM-08.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w19_re_p1_stat_FM-08_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w19_re_p1_stat_FM-08.tar.xz
rm -f build_w19_re_p1_stat_FM-08.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install ..
cmake --build . --target install --config Release
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: configure unit tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\unit-tests
perl %ACE_ROOT%\bin\mwc.pl -type vs2019 -static -features ipv6=1 -features no_cxx11=0 -features xerces3=1 -features no_rapidjson=0 -features ssl=1 -features openssl11=1 -features built_in_topics=0 -features ownership_profile=0 -features content_subscription=0 -features object_model_profile=0 -features persistence_profile=0
- uses: ammaraskar/[email protected]
- name: make unit tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\unit-tests
msbuild -p:Configuration=Release,Platform=x64 -m unit_tests.sln
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS tests\core_ci_tests.lst -ExeSubDir Static_Release -Config STATIC_UNIT_TESTS -Config STATIC -Config NO_BUILT_IN_TOPICS -Config DDS_NO_OBJECT_MODEL_PROFILE -Config DDS_NO_OWNERSHIP_PROFILE -Config DDS_NO_PERSISTENCE_PROFILE -Config DDS_NO_CONTENT_SUBSCRIPTION -Config IPV6 -Config OPENDDS_SECURITY -Config RAPIDJSON -Config CXX11"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_w19_re_o1p1_sec:
runs-on: windows-2019
needs: openssl3_w19
steps:
- name: download openssl artifact
uses: actions/download-artifact@v4
with:
name: openssl3_w19_artifact
- name: extract openssl artifact
shell: bash
run: |
tar xvJf openssl3_w19.tar.xz
rm -f openssl3_w19.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$("C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -property catalog_productDisplayVersion)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c02_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "xerces-c" ] }' > vcpkg.json
- name: install xerces-c
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: set up msvc env
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: ilammy/msvc-dev-cmd@v1
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: cmd
run: |
set SSL_DIR=%CD%/openssl3
cd OpenDDS
call configure -v --optimize --ipv6 --security --ace=${{ github.workspace }}/OpenDDS/ACE_TAO/ACE --tao=${{ github.workspace }}/OpenDDS/ACE_TAO/TAO --mpc=${{ github.workspace }}/MPC --xerces3=${{ env.VCPKG_INSTALLED_DIR }}/x64-windows --openssl=%SSL_DIR% --mpcopts=-hierarchy --compile-warnings=WARNING
echo "SSL_DIR=%SSL_DIR%" >> setenv.cmd
perl tools\scripts\show_build_config.pl
- name: build ACE & TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ACE_TAO\ACE
msbuild -p:Configuration=Release,Platform=x64 -m ace.sln
cd ..\TAO
msbuild -p:Configuration=Release,Platform=x64 -m tao.sln
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.obj" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_w19_re_o1p1_sec:
runs-on: windows-2019
needs: ACE_TAO_w19_re_o1p1_sec
steps:
- name: download openssl artifact
uses: actions/download-artifact@v4
with:
name: openssl3_w19_artifact
- name: extract openssl artifact
shell: bash
run: |
tar xvJf openssl3_w19.tar.xz
rm -f openssl3_w19.tar.xz
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "xerces-c" ] }' > vcpkg.json
- name: install xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_re_o1p1_sec_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_re_o1p1_sec.tar.xz
rm -f ACE_TAO_w19_re_o1p1_sec.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install -DBUILD_SHARED_LIBS=ON ..
cmake --build . --target install --config Release
- name: configure OpenDDS
shell: cmd
run: |
set SSL_DIR=%CD%/openssl3
cd OpenDDS
configure --optimize --ipv6 --rapidjson --security --gtest=${{ github.workspace }}/OpenDDS/tests/googletest/build/install --ace=${{ github.workspace }}/OpenDDS/ACE_TAO/ACE --tao=${{ github.workspace }}/OpenDDS/ACE_TAO/TAO --mpc=${{ github.workspace }}/MPC --xerces3=${{ env.VCPKG_INSTALLED_DIR }}/x64-windows --openssl=%SSL_DIR% --compile-warnings=WARNING
echo "SSL_DIR=%SSL_DIR%" >> setenv.cmd
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
msbuild -p:Configuration=Release,Platform=x64 -m DDS_no_tests.sln
- name: Build CMake Tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
mkdir tests\cmake\build
cd tests\cmake\build
cmake ..
cmake --build . --config Release
- name: gitclean
shell: bash
run: |
touch output.txt
cd OpenDDS
git clean -nd -e ext | tee ../output.txt
if [ -s ../output.txt ]; then exit 1; fi
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.obj" -o -iname "*\.pdb" -o -iname "*\.idb" -o -type f -iname "*\.tlog" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.cmd
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
cmake_w19_re_o1p1_sec:
runs-on: windows-2019
needs: build_w19_re_o1p1_sec
permissions:
contents: read
id-token: write
steps:
- name: download openssl artifact
uses: actions/download-artifact@v4
with:
name: openssl3_w19_artifact
- name: extract openssl artifact
shell: bash
run: |
tar xvJf openssl3_w19.tar.xz
rm -f openssl3_w19.tar.xz
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "xerces-c" ] }' > vcpkg.json
- name: install xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_re_o1p1_sec_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_re_o1p1_sec.tar.xz
rm -f ACE_TAO_w19_re_o1p1_sec.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w19_re_o1p1_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w19_re_o1p1_sec.tar.xz
rm -f build_w19_re_o1p1_sec.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install -DBUILD_SHARED_LIBS=ON ..
cmake --build . --target install --config Release
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS --no-dcps --cmake --cmake-build-cfg Release"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
messenger_w19_re_o1p1_sec:
runs-on: windows-2019
needs: build_w19_re_o1p1_sec
permissions:
contents: read
id-token: write
steps:
- name: download openssl artifact
uses: actions/download-artifact@v4
with:
name: openssl3_w19_artifact
- name: extract openssl artifact
shell: bash
run: |
tar xvJf openssl3_w19.tar.xz
rm -f openssl3_w19.tar.xz
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "xerces-c" ] }' > vcpkg.json
- name: install xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_re_o1p1_sec_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_re_o1p1_sec.tar.xz
rm -f ACE_TAO_w19_re_o1p1_sec.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w19_re_o1p1_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w19_re_o1p1_sec.tar.xz
rm -f build_w19_re_o1p1_sec.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install -DBUILD_SHARED_LIBS=ON ..
cmake --build . --target install --config Release
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: configure messenger tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Messenger
perl %ACE_ROOT%\bin\mwc.pl -type vs2019 -features ipv6=1 -features no_cxx11=0 -features xerces3=1 -features no_rapidjson=0 -features ssl=1 -features openssl11=1 -features no_opendds_security=0
- uses: ammaraskar/[email protected]
- name: make messenger tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Messenger
msbuild -p:Configuration=Release,Platform=x64 -m Messenger.sln
- name: configure C++11 messenger test
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\C++11
perl %ACE_ROOT%\bin\mwc.pl -type vs2019 -features ipv6=1 -features no_cxx11=0 -features xerces3=1 -features no_rapidjson=0 -features ssl=1 -features openssl11=1 -features no_opendds_security=0
- name: make C++11 messenger test
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\C++11
msbuild -p:Configuration=Release,Platform=x64 -m C++11.sln
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS tests\core_ci_tests.lst -ExeSubDir Release -Config STATIC_MESSENGER -Config IPV6 -Config XERCES3 -Config OPENDDS_SECURITY -Config CXX11 -Config RAPIDJSON -Config NO_UNIT_TESTS"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
compiler_w19_re_o1p1_sec:
runs-on: windows-2019
needs: build_w19_re_o1p1_sec
permissions:
contents: read
id-token: write
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
- name: install openssl & xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_re_o1p1_sec_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_re_o1p1_sec.tar.xz
rm -f ACE_TAO_w19_re_o1p1_sec.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w19_re_o1p1_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w19_re_o1p1_sec.tar.xz
rm -f build_w19_re_o1p1_sec.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install -DBUILD_SHARED_LIBS=ON ..
cmake --build . --target install --config Release
- name: configure compiler tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Compiler
perl %ACE_ROOT%\bin\mwc.pl -type vs2019 -features ipv6=1 -features no_cxx11=0 -features xerces3=1 -features no_rapidjson=0 -features ssl=1 -features openssl11=1 -features no_opendds_security=0
- uses: ammaraskar/[email protected]
- name: make compiler tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Compiler
msbuild -p:Configuration=Release,Platform=x64 -m Compiler.sln
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS tests\core_ci_tests.lst -ExeSubDir Release -Config STATIC_COMPILER -Config IPV6 -Config XERCES3 -Config OPENDDS_SECURITY -Config CXX11 -Config RAPIDJSON -Config NO_UNIT_TESTS"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
unit_w19_re_o1p1_sec:
runs-on: windows-2019
needs: build_w19_re_o1p1_sec
permissions:
contents: read
id-token: write
steps:
- name: download openssl artifact
uses: actions/download-artifact@v4
with:
name: openssl3_w19_artifact
- name: extract openssl artifact
shell: bash
run: |
tar xvJf openssl3_w19.tar.xz
rm -f openssl3_w19.tar.xz
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "xerces-c" ] }' > vcpkg.json
- name: install xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_re_o1p1_sec_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_re_o1p1_sec.tar.xz
rm -f ACE_TAO_w19_re_o1p1_sec.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w19_re_o1p1_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w19_re_o1p1_sec.tar.xz
rm -f build_w19_re_o1p1_sec.tar.xz
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install -DBUILD_SHARED_LIBS=ON ..
cmake --build . --target install --config Release
- name: configure unit tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\unit-tests
perl %ACE_ROOT%\bin\mwc.pl -type vs2019 -features ipv6=1 -features no_cxx11=0 -features xerces3=1 -features no_rapidjson=0 -features ssl=1 -features openssl11=1 -features no_opendds_security=0 -value_project macros+=GTEST_LINKED_AS_SHARED_LIBRARY
- uses: ammaraskar/[email protected]
- name: make unit tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\unit-tests
msbuild -p:Configuration=Release,Platform=x64 -m unit_tests.sln
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS tests\core_ci_tests.lst -ExeSubDir Release -Config STATIC_UNIT_TESTS -Config IPV6 -Config XERCES3 -Config OPENDDS_SECURITY -Config CXX11 -Config RAPIDJSON"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
wireshark_w19-release:
runs-on: windows-2019
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
- name: checkout Wireshark
shell: cmd
run: |
git clone -q -b release-3.6 --depth=1 https://gitlab.com/wireshark/wireshark.git
cd wireshark
for /f %%x in ('git rev-parse HEAD') do @echo WIRESHARK_COMMIT=%%x>> %GITHUB_ENV%
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$("C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -property catalog_productDisplayVersion)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c02_${{ github.job }}_${{ env.WIRESHARK_COMMIT }}_${{ env.COMPILER_VERSION }}
- name: checkout WinFlexBison
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: lexxmark/winflexbison
path: winflexbison
ref: v2.5.24
- name: set up msvc env
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: ilammy/msvc-dev-cmd@v1
- name: copy CMakePresets for WinFlexBison
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: cmd
run: copy OpenDDS\.github\workflows\WinFlexBison_CMakePresets.json winflexbison\CMakePresets.json
- name: build WinFlexBison
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: lukka/run-cmake@v10
with:
cmakeListsTxtPath: winflexbison/CMakeLists.txt
configurePreset: config1
buildPreset: build1
- name: set Wireshark environment and copy CMakePresets
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: cmd
run: |
echo WIRESHARK_LIB_DIR=%CD%\wireshark-win64-libs-3.6>> %GITHUB_ENV%
echo QT5_BASE_DIR=${{ steps.runvcpkg.outputs.RUNVCPKG_VCPKG_ROOT_OUT }}\installed\x64-windows>> %GITHUB_ENV%
echo WIRESHARK_BUILD_DIR=${{ github.workspace }}\wsbuild>> %GITHUB_ENV%
echo WINFLEXBISON_ROOT=${{ github.workspace }}\winflexbison>> %GITHUB_ENV%
type %GITHUB_ENV%
copy OpenDDS\.github\workflows\Wireshark_CMakePresets.json wireshark\CMakePresets.json
- name: build Wireshark
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: lukka/run-cmake@v10
with:
cmakeListsTxtPath: wireshark/CMakeLists.txt
configurePreset: config1
buildPreset: build1
- name: create Wireshark artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
find -iname "*\.obj" -delete
tar cvhf ${{ github.job }}.tar wireshark wsbuild wireshark-win64-libs-3.6
xz -3 ${{ github.job }}.tar
- name: upload Wireshark artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
ACE_TAO_w19_re_j_ws_FM-1f:
runs-on: windows-2019
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$("C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -property catalog_productDisplayVersion)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: get jdk version
shell: bash
run: |
export JDK_VERSION=$(java -version 2>&1 | grep -i version)
echo "JDK_VERSION=$JDK_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c01_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}_${{ env.JDK_VERSION }}
- name: setup for run-vcpkg
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
- name: install openssl & xerces-c
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: set up msvc env
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: ilammy/msvc-dev-cmd@v1
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: cmd
run: |
cd OpenDDS
configure --optimize --java --no-built-in-topics --rapidjson --ace=${{ github.workspace }}/OpenDDS/ACE_TAO/ACE --tao=${{ github.workspace }}/OpenDDS/ACE_TAO/TAO --mpc=${{ github.workspace }}/MPC --xerces3=${{ env.VCPKG_INSTALLED_DIR }}/x64-windows --openssl=${{ env.VCPKG_INSTALLED_DIR }}/x64-windows --mpcopts=-hierarchy --compile-warnings=WARNING
- name: build ACE & TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ACE_TAO\ACE
msbuild -p:Configuration=Release,Platform=x64 -m ace.sln
cd ..\TAO
msbuild -p:Configuration=Release,Platform=x64 -m tao.sln
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.obj" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_w19_re_j_ws_FM-1f:
runs-on: windows-2019
needs: [ACE_TAO_w19_re_j_ws_FM-1f, wireshark_w19-release]
steps:
- name: download Wireshark artifact
uses: actions/download-artifact@v4
with:
name: wireshark_w19-release_artifact
- name: extract Wireshark artifact
shell: bash
run: |
tar xvJf wireshark_w19-release.tar.xz
rm -f wireshark_w19-release.tar.xz
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
- name: install openssl & xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_re_j_ws_FM-1f_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_re_j_ws_FM-1f.tar.xz
rm -f ACE_TAO_w19_re_j_ws_FM-1f.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install -DBUILD_SHARED_LIBS=ON ..
cmake --build . --target install --config Release
- name: configure OpenDDS
shell: cmd
run: |
cd OpenDDS
configure --optimize --java --no-built-in-topics --rapidjson --gtest=${{ github.workspace }}/OpenDDS/tests/googletest/build/install --ace=${{ github.workspace }}/OpenDDS/ACE_TAO/ACE --tao=${{ github.workspace }}/OpenDDS/ACE_TAO/TAO --mpc=${{ github.workspace }}/MPC --xerces3=${{ env.VCPKG_INSTALLED_DIR }}/x64-windows --wireshark-cmake=${{ github.workspace }}\wireshark --wireshark-build=${{ github.workspace }}\wsbuild --wireshark-lib=run --glib=${{ github.workspace }}\wireshark-win64-libs-3.6\vcpkg-export-20210609-1-win64ws\installed\x64-windows --openssl=${{ env.VCPKG_INSTALLED_DIR }}/x64-windows --mpcopts=-hierarchy --compile-warnings=WARNING
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
msbuild -p:Configuration=Release,Platform=x64 -m DDS_no_tests.sln
- name: Build CMake Tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
mkdir tests\cmake\build
cd tests\cmake\build
cmake ..
cmake --build . --config Release
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.obj" -o -iname "*\.pdb" -o -iname "*\.idb" -o -type f -iname "*\.tlog" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.cmd
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
cmake_w19_re_j_ws_FM-1f:
runs-on: windows-2019
needs: build_w19_re_j_ws_FM-1f
permissions:
contents: read
id-token: write
steps:
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_re_j_ws_FM-1f_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_re_j_ws_FM-1f.tar.xz
rm -f ACE_TAO_w19_re_j_ws_FM-1f.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w19_re_j_ws_FM-1f_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w19_re_j_ws_FM-1f.tar.xz
rm -f build_w19_re_j_ws_FM-1f.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS --no-dcps --cmake --cmake-build-cfg Release"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
messenger_w19_re_j_ws_FM-1f:
runs-on: windows-2019
needs: build_w19_re_j_ws_FM-1f
permissions:
contents: read
id-token: write
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "xerces-c" ] }' > vcpkg.json
- name: install xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_re_j_ws_FM-1f_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_re_j_ws_FM-1f.tar.xz
rm -f ACE_TAO_w19_re_j_ws_FM-1f.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w19_re_j_ws_FM-1f_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w19_re_j_ws_FM-1f.tar.xz
rm -f build_w19_re_j_ws_FM-1f.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install -DBUILD_SHARED_LIBS=ON ..
cmake --build . --target install --config Release
- name: configure messenger tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Messenger
perl %ACE_ROOT%\bin\mwc.pl -type vs2019 -features no_cxx11=0 -features java=1 -features xerces3=1 -features no_rapidjson=0 -features ssl=1 -features openssl11=1 -features built_in_topics=0
- uses: ammaraskar/[email protected]
- name: make messenger tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Messenger
msbuild -p:Configuration=Release,Platform=x64 -m Messenger.sln
- name: configure C++11 messenger test
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\C++11
perl %ACE_ROOT%\bin\mwc.pl -type vs2019 -features no_cxx11=0 -features java=1 -features xerces3=1 -features no_rapidjson=0 -features ssl=1 -features openssl11=1 -features built_in_topics=0
- name: make C++11 messenger test
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\C++11
msbuild -p:Configuration=Release,Platform=x64 -m C++11.sln
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS tests\core_ci_tests.lst -ExeSubDir Release -Config STATIC_MESSENGER -Config XERCES3 -Config CXX11 -Config RAPIDJSON -Config NO_BUILT_IN_TOPICS -Config NO_UNIT_TESTS"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
compiler_w19_re_j_ws_FM-1f:
runs-on: windows-2019
needs: build_w19_re_j_ws_FM-1f
permissions:
contents: read
id-token: write
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "xerces-c" ] }' > vcpkg.json
- name: install xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_re_j_ws_FM-1f_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_re_j_ws_FM-1f.tar.xz
rm -f ACE_TAO_w19_re_j_ws_FM-1f.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w19_re_j_ws_FM-1f_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w19_re_j_ws_FM-1f.tar.xz
rm -f build_w19_re_j_ws_FM-1f.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install -DBUILD_SHARED_LIBS=ON ..
cmake --build . --target install --config Release
- name: configure compiler tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Compiler
perl %ACE_ROOT%\bin\mwc.pl -type vs2019 -features no_cxx11=0 -features java=1 -features xerces3=1 -features no_rapidjson=0 -features ssl=1 -features openssl11=1 -features built_in_topics=0
- uses: ammaraskar/[email protected]
- name: make compiler tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Compiler
msbuild -p:Configuration=Release,Platform=x64 -m Compiler.sln
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS tests\core_ci_tests.lst -ExeSubDir Release -Config STATIC_COMPILER -Config XERCES3 -Config CXX11 -Config RAPIDJSON -Config NO_BUILT_IN_TOPICS -Config NO_UNIT_TESTS"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
unit_w19_re_j_ws_FM-1f:
runs-on: windows-2019
needs: build_w19_re_j_ws_FM-1f
permissions:
contents: read
id-token: write
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "xerces-c" ] }' > vcpkg.json
- name: install xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w19_re_j_ws_FM-1f_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w19_re_j_ws_FM-1f.tar.xz
rm -f ACE_TAO_w19_re_j_ws_FM-1f.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w19_re_j_ws_FM-1f_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w19_re_j_ws_FM-1f.tar.xz
rm -f build_w19_re_j_ws_FM-1f.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install -DBUILD_SHARED_LIBS=ON ..
cmake --build . --target install --config Release
- name: check GTest Path
shell: cmd
run: |
cd D:\a\OpenDDS\OpenDDS\OpenDDS\tests\googletest\build\install\
dir
cd lib
dir
- name: configure unit tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\unit-tests
perl %ACE_ROOT%\bin\mwc.pl -type vs2019 -features no_cxx11=0 -features java=1 -features xerces3=1 -features no_rapidjson=0 -features ssl=1 -features openssl11=1 -features built_in_topics=0 -value_project macros+=GTEST_LINKED_AS_SHARED_LIBRARY
- uses: ammaraskar/[email protected]
- name: make unit tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\unit-tests
msbuild -p:Configuration=Release,Platform=x64 -m unit_tests.sln
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS tests\core_ci_tests.lst -ExeSubDir Release -Config STATIC_UNIT_TESTS -Config XERCES3 -Config CXX11 -Config RAPIDJSON -Config NO_BUILT_IN_TOPICS"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_w22_x86_i0:
runs-on: windows-2022
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$("C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -property catalog_productDisplayVersion)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: get jdk version
shell: bash
run: |
export JDK_VERSION=$(java -version 2>&1 | grep -i version)
echo "JDK_VERSION=$JDK_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c02_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}_${{ env.JDK_VERSION }}
- name: setup for run-vcpkg
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
echo "VCPKG_DEFAULT_TRIPLET=x86-windows" >> $GITHUB_ENV
- name: install openssl & xerces-c
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: set up msvc env
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x86
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: cmd
run: |
cd OpenDDS
call configure -v --no-inline --tests --security --ace=${{ github.workspace }}/OpenDDS/ACE_TAO/ACE --tao=${{ github.workspace }}/OpenDDS/ACE_TAO/TAO --mpc=${{ github.workspace }}/MPC --xerces3=${{ env.VCPKG_INSTALLED_DIR }}/x86-windows --openssl=${{ env.VCPKG_INSTALLED_DIR }}/x86-windows --mpcopts=-hierarchy --compile-warnings=WARNING
perl tools\scripts\show_build_config.pl
- name: build ACE & TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ACE_TAO\ACE
msbuild -p:Configuration=Debug,Platform=Win32 -m ace.sln
cd ..\TAO
msbuild -p:Configuration=Debug,Platform=Win32 -m tao.sln
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.obj" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_w22_x86_i0_sec:
runs-on: windows-2022
needs: ACE_TAO_w22_x86_i0
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
echo "VCPKG_DEFAULT_TRIPLET=x86-windows" >> $GITHUB_ENV
- name: install openssl & xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: remove unused files
shell: bash
run: |
cd vcpkg
rm -rf buildtrees downloads
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w22_x86_i0_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_w22_x86_i0.tar.xz
rm -f ACE_TAO_w22_x86_i0.tar.xz
- name: move OpenDDS to C drive
shell: bash
run: |
mv OpenDDS /c/
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x86
- name: configure OpenDDS
shell: cmd
run: |
cd /d C:\OpenDDS
configure --tests --rapidjson --security --ace=${{ github.workspace }}\ACE_TAO\ACE --tao=${{ github.workspace }}\ACE_TAO\TAO --mpc=${{ github.workspace }}\MPC --xerces3="${{ env.VCPKG_INSTALLED_DIR }}\x86-windows" --openssl="${{ env.VCPKG_INSTALLED_DIR }}\x86-windows" --compile-warnings=WARNING
- name: check build configuration
shell: cmd
run: |
cd /d C:\OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: cmd
run: |
cd /d C:\OpenDDS
call setenv.cmd
msbuild -p:Configuration=Debug,Platform=Win32 -m DDS.sln
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd /c/OpenDDS
find . -iname "*\.obj" -o -iname "*\.pdb" -o -iname "*\.idb" -o -type f -iname "*\.tlog" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.cmd
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
mv ../${{ github.job }}.tar.xz $GITHUB_WORKSPACE
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
cmake_w22_x86_i0_sec:
runs-on: windows-2022
needs: build_w22_x86_i0_sec
permissions:
contents: read
id-token: write
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
echo "VCPKG_DEFAULT_TRIPLET=x86-windows" >> $GITHUB_ENV
- name: install openssl & xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w22_x86_i0_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_w22_x86_i0.tar.xz
rm -f ACE_TAO_w22_x86_i0.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w22_x86_i0_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w22_x86_i0_sec.tar.xz
rm -f build_w22_x86_i0_sec.tar.xz
- name: move OpenDDS to C drive
shell: bash
run: |
mv OpenDDS /c/
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- uses: ammaraskar/[email protected]
- name: Build CMake Tests
shell: cmd
run: |
cd /d C:\OpenDDS
call setenv.cmd
mkdir tests\cmake\build
cd tests\cmake\build
cmake -A Win32 ..
cmake --build .
- name: check build configuration
shell: cmd
run: |
cd /d C:\OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: create autobuild config
shell: bash
run: |
cd /c/OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="C:/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="C:/OpenDDS"/>
<variable name="root" value="C:/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=C:/OpenDDS --no-dcps --cmake"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
- name: run OpenDDS CMake tests
shell: cmd
run: |
cd /d C:\OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "C:\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: C:\OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd /c/OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: C:\OpenDDS\${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
/c/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "/c/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "/c/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "/c/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
test_w22_x86_i0_sec:
runs-on: windows-2022
needs: build_w22_x86_i0_sec
permissions:
contents: read
id-token: write
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
echo "VCPKG_DEFAULT_TRIPLET=x86-windows" >> $GITHUB_ENV
- name: install openssl & xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w22_x86_i0_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
tar xvfJ ACE_TAO_w22_x86_i0.tar.xz
rm -f ACE_TAO_w22_x86_i0.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w22_x86_i0_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w22_x86_i0_sec.tar.xz
rm -f build_w22_x86_i0_sec.tar.xz
- name: move OpenDDS to C drive
shell: bash
run: |
mv OpenDDS /c/
- name: setup gtest
shell: cmd
run: |
cd /d C:\OpenDDS\tests\googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install -A Win32 ..
cmake --build . --target install
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: check build configuration
shell: cmd
run: |
cd /d C:\OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: create autobuild config
shell: bash
run: |
cd /c/OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="C:/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="C:/OpenDDS"/>
<variable name="root" value="C:/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=C:/OpenDDS -Config DCPS_MIN"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
- name: run OpenDDS tests
shell: cmd
run: |
cd /d C:\OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "C:\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: C:\OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd /c/OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: C:\OpenDDS\${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
/c/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "/c/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "/c/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "/c/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
build_w22_x86_i0_j_FM-1f:
runs-on: windows-2022
needs: ACE_TAO_w22_x86_i0
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "xerces-c" ] }' > vcpkg.json
echo "VCPKG_DEFAULT_TRIPLET=x86-windows" >> $GITHUB_ENV
- name: install xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w22_x86_i0_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w22_x86_i0.tar.xz
rm -f ACE_TAO_w22_x86_i0.tar.xz
- name: Move OpenDDS to C Drive
shell: bash
run: |
mv OpenDDS /c/
- uses: ammaraskar/[email protected]
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x86
- name: configure OpenDDS
shell: cmd
run: |
cd /d C:\OpenDDS
configure --tests --java --no-built-in-topics --rapidjson --mpc=${{ github.workspace }}\MPC --xerces3="${{ env.VCPKG_INSTALLED_DIR }}\x86-windows" --features no_opendds_testing_features=0 --compile-warnings=WARNING
- name: check build configuration
shell: cmd
run: |
cd /d C:\OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: build OpenDDS
shell: cmd
run: |
cd /d C:\OpenDDS
call setenv.cmd
msbuild -p:Configuration=Debug,Platform=Win32 -m DDS.sln
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd /c/OpenDDS
find . -iname "*\.obj" -o -iname "*\.pdb" -o -iname "*\.idb" -o -type f -iname "*\.tlog" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.cmd
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
mv ../${{ github.job }}.tar.xz $GITHUB_WORKSPACE
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
cmake_w22_x86_i0_j_FM-1f:
runs-on: windows-2022
needs: build_w22_x86_i0_j_FM-1f
permissions:
contents: read
id-token: write
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
echo "VCPKG_DEFAULT_TRIPLET=x86-windows" >> $GITHUB_ENV
- name: install openssl & xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w22_x86_i0_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w22_x86_i0.tar.xz
rm -f ACE_TAO_w22_x86_i0.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w22_x86_i0_j_FM-1f_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w22_x86_i0_j_FM-1f.tar.xz
rm -f build_w22_x86_i0_j_FM-1f.tar.xz
- name: Move OpenDDS to C Drive
shell: bash
run: |
mv OpenDDS /c/
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- uses: ammaraskar/[email protected]
- name: check build configuration
shell: cmd
run: |
cd /d C:\OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: Build CMake Tests
shell: cmd
run: |
cd /d C:\OpenDDS
call setenv.cmd
mkdir C:\tests\cmake\build
cd /d C:\tests\cmake\build
cmake -A Win32 %DDS_ROOT%\tests\cmake
cmake --build .
- name: create autobuild config
shell: bash
run: |
cd /c/OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="c:/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="c:/OpenDDS"/>
<variable name="root" value="c:/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=c:/OpenDDS --no-dcps --cmake --cmake-build-dir=c:/tests/cmake/build -Config OPENDDS_TESTING_FEATURES"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS tests
shell: cmd
run: |
cd /d C:\OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "C:\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: c:/OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd /c/OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: c:/OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
/c/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "c:/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "c:/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "c:/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_w22_p1:
runs-on: windows-2022
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$("C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -property catalog_productDisplayVersion)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c02_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}
- name: setup for run-vcpkg
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
- name: install openssl & xerces-c
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: set up msvc env
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: ilammy/msvc-dev-cmd@v1
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: cmd
run: |
cd OpenDDS
configure --std=c++20 --tests --ipv6 --rapidjson --ace=${{ github.workspace }}/OpenDDS/ACE_TAO/ACE --tao=${{ github.workspace }}/OpenDDS/ACE_TAO/TAO --mpc=${{ github.workspace }}/MPC --xerces3=${{ env.VCPKG_INSTALLED_DIR }}/x64-windows --openssl=${{ env.VCPKG_INSTALLED_DIR }}/x64-windows --mpcopts=-hierarchy --compile-warnings=WARNING
- name: build ACE & TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ACE_TAO\ACE
msbuild -p:Configuration=Debug,Platform=x64 -m ace.sln
cd ..\TAO
msbuild -p:Configuration=Debug,Platform=x64 -m tao.sln
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.obj" | xargs rm
tar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_w22_p1:
runs-on: windows-2022
needs: ACE_TAO_w22_p1
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
- name: install openssl & xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w22_p1_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w22_p1.tar.xz
rm -f ACE_TAO_w22_p1.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install -DBUILD_SHARED_LIBS=ON ..
cmake --build . --target install
- name: configure OpenDDS
shell: cmd
run: |
cd OpenDDS
configure --std=c++20 --ipv6 --rapidjson --gtest=${{ github.workspace }}/OpenDDS/tests/googletest/build/install --ace=${{ github.workspace }}/OpenDDS/ACE_TAO/ACE --tao=${{ github.workspace }}/OpenDDS/ACE_TAO/TAO --mpc=${{ github.workspace }}/MPC --xerces3=${{ env.VCPKG_INSTALLED_DIR }}/x64-windows --openssl=${{ env.VCPKG_INSTALLED_DIR }}/x64-windows --compile-warnings=WARNING
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
msbuild -p:Configuration=Debug,Platform=x64 -m DDS_no_tests.sln
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.obj" -o -iname "*\.pdb" -o -iname "*\.idb" -o -type f -iname "*\.tlog" | xargs rm
tar cvf ../${{ github.job }}.tar setenv.cmd
git clean -xdfn | cut -d ' ' -f 3- | xargs tar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
cmake_w22_p1:
runs-on: windows-2022
needs: build_w22_p1
permissions:
contents: read
id-token: write
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
- name: install openssl & xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w22_p1_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w22_p1.tar.xz
rm -f ACE_TAO_w22_p1.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w22_p1_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w22_p1.tar.xz
rm -f build_w22_p1.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- uses: ammaraskar/[email protected]
- name: Build CMake Tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
mkdir tests\cmake\build
cd tests\cmake\build
cmake .. -DCMAKE_CXX_STANDARD=20
cmake --build .
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS --no-dcps --cmake"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS CMake tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
messenger_w22_p1:
runs-on: windows-2022
needs: build_w22_p1
permissions:
contents: read
id-token: write
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
- name: install openssl & xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w22_p1_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w22_p1.tar.xz
rm -f ACE_TAO_w22_p1.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w22_p1_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w22_p1.tar.xz
rm -f build_w22_p1.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: configure messenger tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Messenger
perl %DDS_ROOT%\bin\opendds_mwc.pl
- uses: ammaraskar/[email protected]
- name: make messenger tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Messenger
msbuild -p:Configuration=Debug,Platform=x64 -m Messenger.sln
- name: configure C++11 messenger test
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\C++11
perl %DDS_ROOT%\bin\opendds_mwc.pl
- name: make C++11 messenger test
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\C++11
msbuild -p:Configuration=Debug,Platform=x64 -m C++11.sln
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS tests\core_ci_tests.lst -ExeSubDir Debug -Config STATIC_MESSENGER -Config IPV6 -Config XERCES3 -Config CXX11 -Config NO_UNIT_TESTS -Config RAPIDJSON"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS Messenger tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
compiler_w22_p1:
runs-on: windows-2022
needs: build_w22_p1
permissions:
contents: read
id-token: write
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
- name: install openssl & xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w22_p1_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w22_p1.tar.xz
rm -f ACE_TAO_w22_p1.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w22_p1_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w22_p1.tar.xz
rm -f build_w22_p1.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install -DBUILD_SHARED_LIBS=ON ..
cmake --build . --target install
- name: configure compiler tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Compiler
perl %DDS_ROOT%\bin\opendds_mwc.pl -value_project macros+=GTEST_LINKED_AS_SHARED_LIBRARY
- uses: ammaraskar/[email protected]
- name: make compiler tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\DCPS\Compiler
msbuild -p:Configuration=Debug,Platform=x64 -m Compiler.sln
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS tests\core_ci_tests.lst -ExeSubDir Debug -Config STATIC_COMPILER -Config STATIC_COMPILER2 -Config IPV6 -Config XERCES3 -Config CXX11 -Config NO_UNIT_TESTS -Config RAPIDJSON"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS compiler tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
unit_w22_p1:
runs-on: windows-2022
needs: build_w22_p1
permissions:
contents: read
id-token: write
steps:
- name: setup for run-vcpkg
shell: bash
run: |
echo '{ "name": "opendds", "version-string": "github-actions", "dependencies": [ "openssl", "xerces-c" ] }' > vcpkg.json
- name: install openssl & xerces-c
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_w22_p1_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
tar xvfJ ACE_TAO_w22_p1.tar.xz
rm -f ACE_TAO_w22_p1.tar.xz
- name: set up msvc env
uses: ilammy/msvc-dev-cmd@v1
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_w22_p1_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
tar xvfJ build_w22_p1.tar.xz
rm -f build_w22_p1.tar.xz
- name: check build configuration
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
perl tools\scripts\show_build_config.pl
- name: setup gtest
shell: cmd
run: |
cd OpenDDS/tests/googletest
git submodule init
git submodule update
mkdir build
cd build
mkdir install
cmake -DCMAKE_INSTALL_PREFIX=./install -DBUILD_SHARED_LIBS=ON ..
cmake --build . --target install
- name: configure unit tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\unit-tests
perl %DDS_ROOT%\bin\opendds_mwc.pl -value_project macros+=GTEST_LINKED_AS_SHARED_LIBRARY
- uses: ammaraskar/[email protected]
- name: make unit tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd tests\unit-tests
msbuild -p:Configuration=Debug,Platform=x64 -m unit_tests.sln
- name: create autobuild config
shell: bash
run: |
cd OpenDDS
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
export FS_GHW=$(echo $GITHUB_WORKSPACE | sed 's/\\/\//g')
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$FS_GHW/OpenDDS"/>
<variable name="root" value="$FS_GHW/OpenDDS/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="msvc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$FS_GHW/OpenDDS tests\core_ci_tests.lst -ExeSubDir Debug -Config STATIC_UNIT_TESTS -Config IPV6 -Config XERCES3 -Config CXX11 -Config RAPIDJSON"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
cat config.xml
- name: run OpenDDS unit tests
shell: cmd
run: |
cd OpenDDS
call setenv.cmd
cd ${{ github.job }}_autobuild_workspace
perl "${{ github.workspace }}\autobuild\autobuild.pl" "${{ github.workspace }}\OpenDDS\${{ github.job }}_autobuild_workspace\config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS\${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
# macOS 13
ACE_TAO_m13_sec:
runs-on: macos-13
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(c++ --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get jdk version
shell: bash
run: |
export JDK_VERSION=$(java -version 2>&1 | grep -i version)
echo "JDK_VERSION=$JDK_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c01_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}_${{ env.JDK_VERSION }}
- name: install xerces-c
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
brew install xerces-c
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
XERCESC_ROOT=$(find /usr/local/Cellar/xerces-c -iname "3\.*\.*" -type d | sort -r | head -n 1)
./configure --std=c++11 --tests --security --ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --xerces3=$XERCESC_ROOT --openssl=/usr/local/opt/[email protected] --compile-warnings=WARNING
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
. setenv.sh
cd ACE_TAO/ACE
make -j4
cd ../TAO
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.o" | xargs rm
gtar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs gtar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_m13_sec:
runs-on: macos-13
needs: ACE_TAO_m13_sec
steps:
- name: install xerces-c
run: |
brew install xerces-c
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_m13_sec_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
gtar xvfJ ACE_TAO_m13_sec.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: configure OpenDDS
run: |
cd OpenDDS
XERCESC_ROOT=$(find /usr/local/Cellar/xerces-c -iname "3\.*\.*" -type d | sort -r | head -n 1)
./configure --std=c++11 --tests --rapidjson --security --ace=$GITHUB_WORKSPACE/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --xerces3=$XERCESC_ROOT --openssl=/usr/local/opt/[email protected] --compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
mkdir OpenDDS/tests/cmake/build
cd OpenDDS/tests/cmake/build
cmake -DCMAKE_CXX_STANDARD=11 ..
cmake --build . -- -j4
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
gtar cvf ../${{ github.job }}.tar setenv.sh
git clean -xdfn | cut -d ' ' -f 3- | xargs gtar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
test_m13_sec:
runs-on: macos-13
needs: build_m13_sec
permissions:
contents: read
id-token: write
steps:
- name: install xerces-c
run: |
brew install xerces-c
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_m13_sec_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
gtar xvfJ ACE_TAO_m13_sec.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_m13_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
gtar xvfJ build_m13_sec.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: run OpenDDS tests
shell: bash
run: |
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS -Config STATIC_MESSENGER -Config STATIC_COMPILER -Config STATIC_COMPILER2 -Config STATIC_UNIT_TESTS -Config XERCES3 -Config OPENDDS_SECURITY -Config CXX11 -Config RAPIDJSON -Config NO_SHMEM -Config DDS_NO_ORBSVCS --no-dcps tests/core_ci_tests.lst"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
cmake_m13_sec:
runs-on: macos-13
needs: build_m13_sec
permissions:
contents: read
id-token: write
steps:
- name: install xerces-c
run: |
brew install xerces-c
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_m13_sec_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
gtar xvfJ ACE_TAO_m13_sec.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_m13_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
gtar xvfJ build_m13_sec.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: run OpenDDS tests
shell: bash
run: |
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS --no-dcps --cmake"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
build_m13_j_FM-1f:
runs-on: macos-13
needs: ACE_TAO_m13_sec
steps:
- name: install xerces-c
run: |
brew install xerces-c
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_m13_sec_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
gtar xvfJ ACE_TAO_m13_sec.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: configure OpenDDS
run: |
cd OpenDDS
./configure --std=c++11 --tests --rapidjson --java --no-built-in-topics --ace=$GITHUB_WORKSPACE/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
mkdir OpenDDS/tests/cmake/build
cd OpenDDS/tests/cmake/build
cmake -DCMAKE_CXX_STANDARD=11 ..
cmake --build . -- -j4
- name: set up Modeling tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
cd tools/modeling/tests
./setup.pl
cd -
mwc.pl -type gnuace -workers 4 -features built_in_topics=0 tools/modeling/tests/modeling_tests.mwc
- name: build Modeling tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4 -C tools/modeling/tests
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
gtar cvf ../${{ github.job }}.tar setenv.sh
git clean -xdfn | cut -d ' ' -f 3- | xargs gtar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
test_m13_j_FM-1f:
runs-on: macos-13
needs: build_m13_j_FM-1f
permissions:
contents: read
id-token: write
steps:
- name: install xerces-c
run: |
brew install xerces-c
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_m13_sec_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
gtar xvfJ ACE_TAO_m13_sec.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_m13_j_FM-1f_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
gtar xvfJ build_m13_j_FM-1f.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: run OpenDDS tests
shell: bash
run: |
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS -Config STATIC_MESSENGER -Config STATIC_COMPILER -Config STATIC_COMPILER2 -Config STATIC_UNIT_TESTS -Config CXX11 -Config RAPIDJSON -Config NO_SHMEM -Config DDS_NO_ORBSVCS -Config NO_BUILT_IN_TOPICS --no-dcps tests/core_ci_tests.lst"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
cmake_modeling_m13_j_FM-1f:
runs-on: macos-13
needs: build_m13_j_FM-1f
permissions:
contents: read
id-token: write
steps:
- name: install xerces-c
run: |
brew install xerces-c
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_m13_sec_artifact
path: ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd ACE_TAO
gtar xvfJ ACE_TAO_m13_sec.tar.xz
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_m13_j_FM-1f_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
gtar xvfJ build_m13_j_FM-1f.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: run OpenDDS tests
shell: bash
run: |
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS --no-dcps -Config CXX11 -Config RAPIDJSON -Config NO_SHMEM -Config DDS_NO_ORBSVCS -Config NO_BUILT_IN_TOPICS --java --cmake --modeling"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
# macOS 14
ACE_TAO_m14_o1d0_sec:
runs-on: macos-14
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(c++ --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c03_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}
- name: install xerces-c
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
brew install xerces-c
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
XERCESC_ROOT=$(find /opt/homebrew/Cellar/xerces-c -iname "3\.*\.*" -type d | sort -r | head -n 1)
./configure --optimize --no-debug --std=c++11 --tests --security --ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --xerces3=$XERCESC_ROOT --openssl=/opt/homebrew/opt/[email protected] --compile-warnings=WARNING
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
. setenv.sh
cd ACE_TAO/ACE
make -j4
cd ../TAO
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.o" | xargs rm
gtar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs gtar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_m14_o1d0_sec:
runs-on: macos-14
needs: ACE_TAO_m14_o1d0_sec
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: install xerces-c
run: |
brew install xerces-c
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_m14_o1d0_sec_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
gtar xvfJ ACE_TAO_m14_o1d0_sec.tar.xz
- name: configure OpenDDS
run: |
cd OpenDDS
clang++ --version
XERCESC_ROOT=$(find /opt/homebrew/Cellar/xerces-c -iname "3\.*\.*" -type d | sort -r | head -n 1)
./configure --optimize --no-debug --std=c++11 --tests --rapidjson --security --ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --xerces3=$XERCESC_ROOT --openssl=/opt/homebrew/opt/[email protected] --compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
mkdir OpenDDS/tests/cmake/build
cd OpenDDS/tests/cmake/build
cmake -DCMAKE_CXX_STANDARD=11 ..
cmake --build . -- -j4
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
find bin dds lib tests -type f -print0 | xargs -0 shasum > manifest 2> manifest_errors || true
gtar cvf ../${{ github.job }}.tar setenv.sh manifest manifest_errors
git clean -xdfn | cut -d ' ' -f 3- | xargs gtar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
test_m14_o1d0_sec:
runs-on: macos-14
needs: build_m14_o1d0_sec
permissions:
contents: read
id-token: write
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: install xerces-c
run: |
brew install xerces-c
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_m14_o1d0_sec_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
gtar xvfJ ACE_TAO_m14_o1d0_sec.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_m14_o1d0_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
gtar xvfJ build_m14_o1d0_sec.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
sudo chmod o+w /cores
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS -Config STATIC_MESSENGER -Config STATIC_COMPILER -Config STATIC_COMPILER2 -Config STATIC_UNIT_TESTS -Config XERCES3 -Config OPENDDS_SECURITY -Config CXX11 -Config RAPIDJSON -Config NO_SHMEM -Config DDS_NO_ORBSVCS --no-dcps tests/core_ci_tests.lst"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
cmake_m14_o1d0_sec:
runs-on: macos-14
needs: build_m14_o1d0_sec
permissions:
contents: read
id-token: write
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: install xerces-c
run: |
brew install xerces-c
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_m14_o1d0_sec_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
gtar xvfJ ACE_TAO_m14_o1d0_sec.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_m14_o1d0_sec_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
gtar xvfJ build_m14_o1d0_sec.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
sudo chmod o+w /cores
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS --no-dcps --cmake"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
ACE_TAO_m14_i0_j_FM-1f:
runs-on: macos-14
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: get ACE_TAO commit
shell: bash
run: |
cd OpenDDS/ACE_TAO
export ACE_COMMIT=$(git rev-parse HEAD)
echo "ACE_COMMIT=$ACE_COMMIT" >> $GITHUB_ENV
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$(c++ --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: get jdk version
shell: bash
run: |
export JDK_VERSION=$(java -version 2>&1 | grep -i version)
echo "JDK_VERSION=$JDK_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c01_${{ github.job }}_ace6tao2_${{ env.ACE_COMMIT }}_${{ env.COMPILER_VERSION }}_${{ env.JDK_VERSION }}
- name: install xerces-c
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
brew install xerces-c
- name: checkout MPC
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: configure OpenDDS
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
XERCESC_ROOT=$(find /opt/homebrew/Cellar/xerces-c -iname "3\.*\.*" -type d | sort -r | head -n 1)
./configure --no-inline --std=c++11 --tests --security --ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --xerces3=$XERCESC_ROOT --openssl=/opt/homebrew/opt/[email protected] --compile-warnings=WARNING
- name: build ACE and TAO
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
cd OpenDDS
. setenv.sh
cd ACE_TAO/ACE
make -j4
cd ../TAO
make -j4
- name: create ACE_TAO tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
cd OpenDDS/ACE_TAO
perl -ni.bak -e "print unless /opendds/" ACE/bin/MakeProjectCreator/config/default.features # remove opendds features from here, let individual build configure scripts handle those
find . -iname "*\.o" | xargs rm
gtar cvf ../../${{ github.job }}.tar ACE/ace/config.h
git clean -xdfn | cut -d ' ' -f 3- | xargs gtar uvf ../../${{ github.job }}.tar
xz -3 ../../${{ github.job }}.tar
- name: upload ACE_TAO artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
build_m14_i0_j_FM-1f:
runs-on: macos-14
needs: ACE_TAO_m14_i0_j_FM-1f
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: install xerces-c
run: |
brew install xerces-c
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_m14_i0_j_FM-1f_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
gtar xvfJ ACE_TAO_m14_i0_j_FM-1f.tar.xz
- name: configure OpenDDS
run: |
cd OpenDDS
clang++ --version
XERCESC_ROOT=$(find /opt/homebrew/Cellar/xerces-c -iname "3\.*\.*" -type d | sort -r | head -n 1)
./configure --no-inline --std=c++11 --tests --rapidjson --java --no-built-in-topics --ace=$GITHUB_WORKSPACE/OpenDDS/ACE_TAO/ACE --mpc=$GITHUB_WORKSPACE/MPC --xerces3=$XERCESC_ROOT --compile-warnings=WARNING
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- uses: ammaraskar/[email protected]
- name: build OpenDDS
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4
- name: Build CMake Tests
run: |
source OpenDDS/setenv.sh
mkdir OpenDDS/tests/cmake/build
cd OpenDDS/tests/cmake/build
cmake -DCMAKE_CXX_STANDARD=11 ..
cmake --build . -- -j4
- name: set up Modeling tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
cd tools/modeling/tests
./setup.pl
cd -
mwc.pl -type gnuace -workers 4 -features built_in_topics=0 tools/modeling/tests/modeling_tests.mwc
- name: build Modeling tests
shell: bash
run: |
cd OpenDDS
. setenv.sh
make -j4 -C tools/modeling/tests
- name: create OpenDDS tar.xz artifact
shell: bash
run: |
cd OpenDDS
rm -rf ACE_TAO
find . -iname "*\.o" | xargs rm
find bin dds lib tests -type f -print0 | xargs -0 shasum > manifest 2> manifest_errors || true
gtar cvf ../${{ github.job }}.tar setenv.sh manifest manifest_errors
git clean -xdfn | cut -d ' ' -f 3- | xargs gtar uvf ../${{ github.job }}.tar
xz -3 ../${{ github.job }}.tar
- name: upload OpenDDS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
test_m14_i0_j_FM-1f:
runs-on: macos-14
needs: build_m14_i0_j_FM-1f
permissions:
contents: read
id-token: write
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: install xerces-c
run: |
brew install xerces-c
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_m14_i0_j_FM-1f_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
gtar xvfJ ACE_TAO_m14_i0_j_FM-1f.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_m14_i0_j_FM-1f_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
gtar xvfJ build_m14_i0_j_FM-1f.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
sudo chmod o+w /cores
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS -Config STATIC_MESSENGER -Config STATIC_COMPILER -Config STATIC_COMPILER2 -Config STATIC_UNIT_TESTS -Config CXX11 -Config RAPIDJSON -Config NO_SHMEM -Config DDS_NO_ORBSVCS -Config NO_BUILT_IN_TOPICS -Config NO_UNIT_TESTS --no-dcps tests/core_ci_tests.lst"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
cmake_modeling_m14_i0_j_FM-1f:
runs-on: macos-14
needs: build_m14_i0_j_FM-1f
permissions:
contents: read
id-token: write
steps:
- name: checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: install xerces-c
run: |
brew install xerces-c
- name: checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: checkout autobuild
uses: actions/checkout@v4
with:
repository: DOCGroup/autobuild
path: autobuild
- name: checkout ACE_TAO
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
path: OpenDDS/ACE_TAO
- name: download ACE_TAO artifact
uses: actions/download-artifact@v4
with:
name: ACE_TAO_m14_i0_j_FM-1f_artifact
path: OpenDDS/ACE_TAO
- name: extract ACE_TAO artifact
shell: bash
run: |
cd OpenDDS/ACE_TAO
gtar xvfJ ACE_TAO_m14_i0_j_FM-1f.tar.xz
- name: download OpenDDS artifact
uses: actions/download-artifact@v4
with:
name: build_m14_i0_j_FM-1f_artifact
path: OpenDDS
- name: extract OpenDDS artifact
shell: bash
run: |
cd OpenDDS
gtar xvfJ build_m14_i0_j_FM-1f.tar.xz
- name: check build configuration
shell: bash
run: |
cd OpenDDS
. setenv.sh
tools/scripts/show_build_config.pl
- name: run OpenDDS tests
shell: bash
run: |
ulimit -c unlimited
sudo chmod o+w /cores
cd OpenDDS
echo "export ACE_TEST_LOG_STUCK_STACKS=1" >> setenv.sh
. setenv.sh
mkdir ${{ github.job }}_autobuild_workspace
cd ${{ github.job }}_autobuild_workspace
echo using commit $TRIGGERING_COMMIT for SHA
echo $TRIGGERING_COMMIT >> ./SHA
cat > config.xml <<EOF
<autobuild>
<configuration>
<variable name="log_file" value="output"/>
<variable name="log_root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace/logs"/>
<variable name="project_root" value="$DDS_ROOT"/>
<variable name="root" value="$DDS_ROOT/${{ github.job }}_autobuild_workspace"/>
<variable name="junit_xml_output" value="Tests"/>
</configuration>
<command name="log" options="on"/>
<command name="print_os_version"/>
<command name="print_ace_config"/>
<command name="print_cmake_version"/>
<command name="print_make_version"/>
<command name="check_compiler" options="gcc"/>
<command name="print_perl_version"/>
<command name="print_autobuild_config"/>
<command name="auto_run_tests" options="script_path=tests dir=$GITHUB_WORKSPACE/OpenDDS --no-dcps -Config CXX11 -Config RAPIDJSON -Config NO_SHMEM -Config DDS_NO_ORBSVCS -Config NO_BUILT_IN_TOPICS -Config NO_UNIT_TESTS --modeling --cmake"/>
<command name="log" options="off"/>
<command name="process_logs" options="move prettify index"/>
</autobuild>
EOF
$GITHUB_WORKSPACE/autobuild/autobuild.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/config.xml"
- name: upload autobuild output
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_autobuild_output
path: OpenDDS/${{ github.job }}_autobuild_workspace
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: projects/30587790497/locations/global/workloadIdentityPools/gha-scoreboard-upload/providers/gha-provider
service_account: [email protected]
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: get OpenDDS version
shell: bash
run: |
cd OpenDDS
echo "OPENDDS_MAJOR_VERSION=$(grep '#define OPENDDS_MAJOR_VERSION' dds/Version.h | cut -d' ' -f3)" >> $GITHUB_ENV
- name: upload to Google Cloud
uses: 'google-github-actions/upload-cloud-storage@v2'
with:
path: OpenDDS/${{ github.job }}_autobuild_workspace/logs
destination: opendds-gha-scoreboard-uploads/${{ env.OPENDDS_MAJOR_VERSION }}/${{ github.job }}
parent: false
process_gcloudignore: false
if: ${{ github.repository == 'OpenDDS/OpenDDS' && github.ref == env.SCOREBOARD_UPLOAD_BRANCH }}
- name: check results
shell: bash
run: |
$GITHUB_WORKSPACE/OpenDDS/tools/scripts/autobuild_brief_html_to_text.pl "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/"*_Brief.html
cat "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
grep -q 'Failures: 0' "$GITHUB_WORKSPACE/OpenDDS/${{ github.job }}_autobuild_workspace/logs/latest.txt"
build_u14_gcc4:
runs-on: ubuntu-22.04
steps:
- name: Checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- uses: ammaraskar/[email protected]
- name: Build
run: cd OpenDDS && docker build -f .github/workflows/build_u14_gcc4.Dockerfile .
openssl3_u20:
runs-on: ubuntu-20.04
steps:
- name: checkout openssl 3.0.2
run: |
git clone --branch openssl-3.0.2 --depth 1 https://github.com/openssl/openssl.git
cd openssl
echo "OPENSSL_COMMIT=$(git rev-parse HEAD)" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c02_${{ github.job }}_${{ env.OPENSSL_COMMIT }}
- name: Build openssl 3.0.2
if: steps.cache-artifact.outputs.cache-hit != 'true'
run: |
PREFIX=$PWD/openssl_install
echo PREFIX=$PREFIX
mkdir $PREFIX
cd openssl
./Configure no-tests --prefix=$PREFIX
make install_sw
- name: create openssl tar.xz artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
tar cvf ${{ github.job }}.tar openssl_install
xz -3 ${{ github.job }}.tar
- name: upload openssl artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz
openssl3_w19:
runs-on: windows-2019
steps:
- name: checkout openssl 3.0.2
shell: cmd
run: |
git clone --branch openssl-3.0.2 --depth 1 https://github.com/openssl/openssl.git
cd openssl
for /f %%x in ('git rev-parse HEAD') do @echo OPENSSL_COMMIT=%%x>> %GITHUB_ENV%
- name: get compiler version
shell: bash
run: |
export COMPILER_VERSION=$("C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -property catalog_productDisplayVersion)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: Cache Artifact
id: cache-artifact
uses: actions/cache@v4
with:
path: ${{ github.job }}.tar.xz
key: c01_${{ github.job }}_${{ env.OPENSSL_COMMIT }}_${{ env.COMPILER_VERSION }}
- name: set up msvc env
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: ilammy/msvc-dev-cmd@v1
- name: set up nasm
if: steps.cache-artifact.outputs.cache-hit != 'true'
uses: ilammy/setup-nasm@v1
- name: set openssl environment
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: cmd
run: |
echo SSL_ROOT=%CD%\openssl3>> %GITHUB_ENV%
echo OPENSSLDIR=%CD%\openssl3dir>> %GITHUB_ENV%
type %GITHUB_ENV%
- name: build openssl
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: cmd
run: |
cd openssl
perl Configure --prefix=%SSL_ROOT% --openssldir=%OPENSSLDIR% --no-asm VC-WIN64A
nmake
nmake install
- name: create openssl artifact
if: steps.cache-artifact.outputs.cache-hit != 'true'
shell: bash
run: |
tar cvhf ${{ github.job }}.tar openssl3
xz -3 ${{ github.job }}.tar
- name: upload openssl artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}_artifact
path: ${{ github.job }}.tar.xz