test #508
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: test | |
on: | |
workflow_dispatch: | |
pull_request: | |
push: | |
branches: | |
- main | |
schedule: | |
- cron: '0 1 * * *' | |
jobs: | |
# This job is used to test the correct compilation and test execution of the project. | |
# It download, install and compile every dependency as in a colcon workspace to simulate a real user scenario. | |
# TODO: once the tests are implemented, add them to this job. | |
ubuntu-build-test: | |
runs-on: ${{ matrix.ubuntu-distro }} | |
strategy: | |
fail-fast: false | |
matrix: | |
cmake-config: | |
- 'Release' | |
- 'Debug' | |
ubuntu-distro: | |
- ubuntu-20.04 | |
- ubuntu-22.04 | |
steps: | |
- name: Sync eProsima/fastdds-visualizer-plugin repository | |
uses: actions/checkout@v2 | |
with: | |
path: src/fastdds-visualizer-plugin | |
- name: Install apt packages | |
uses: ./src/fastdds-visualizer-plugin/.github/actions/install-apt-packages | |
- name: Install GTest | |
uses: ./src/fastdds-visualizer-plugin/.github/actions/install-gtest-linux | |
- name: Install Python packages | |
uses: ./src/fastdds-visualizer-plugin/.github/actions/install-python-packages | |
- name: Fetch required repositories | |
run: | | |
vcs import src < src/fastdds-visualizer-plugin/.github/workflows/requirements.repos | |
- name: Update colcon mixin | |
run: | | |
colcon mixin add default \ | |
https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml | |
colcon mixin update default | |
continue-on-error: true | |
- name: Install Qt | |
uses: jurplel/[email protected] | |
with: | |
version: '5.15.2' | |
dir: '${{ github.workspace }}/qt_installation/' | |
modules: 'qtcharts' | |
- name: Build workspace | |
run: | | |
cat src/fastdds-visualizer-plugin/.github/workflows/test_colcon.meta | |
colcon build \ | |
--event-handlers=console_direct+ \ | |
--metas src/fastdds-visualizer-plugin/.github/workflows/test_colcon.meta \ | |
--mixin coverage-gcc asan-gcc | |
- name: Run tests | |
uses: ./src/fastdds-visualizer-plugin/.github/actions/run-test-ubuntu | |
with: | |
package_name: fastdds-visualizer-plugin | |
if: always() | |
- name: Upload Logs | |
uses: actions/upload-artifact@v4 | |
with: | |
name: colcon-logs-ubuntu | |
path: log/ | |
if: always() | |
# This job compiles the documentation of the package and upload the docs generated. | |
# NOTE: it does compile the whole project as the docs is a cmake subproject and cannot be accessed by colcon. | |
ubuntu-build-test-docs: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Sync eProsima/fastdds-visualizer-plugin repository | |
uses: actions/checkout@v2 | |
with: | |
path: src/fastdds-visualizer-plugin | |
- name: Install apt packages | |
uses: ./src/fastdds-visualizer-plugin/.github/actions/install-apt-packages | |
- name: Install GTest | |
uses: ./src/fastdds-visualizer-plugin/.github/actions/install-gtest-linux | |
- name: Install Python packages | |
uses: ./src/fastdds-visualizer-plugin/.github/actions/install-python-packages | |
- name: Fetch required repositories | |
run: | | |
vcs import src < src/fastdds-visualizer-plugin/.github/workflows/requirements.repos | |
- name: Update colcon mixin | |
run: | | |
colcon mixin add default \ | |
https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml | |
colcon mixin update default | |
continue-on-error: true | |
- name: Install Qt | |
uses: jurplel/[email protected] | |
with: | |
version: '5.15.2' | |
dir: '${{ github.workspace }}/qt_installation/' | |
modules: 'qtcharts' | |
- name: Build workspace | |
run: | | |
cat src/fastdds-visualizer-plugin/.github/workflows/test_documentation.meta | |
colcon build \ | |
--event-handlers=console_direct+ \ | |
--metas src/fastdds-visualizer-plugin/.github/workflows/test_documentation.meta \ | |
--mixin coverage-gcc asan-gcc | |
- name: Run tests | |
uses: ./src/fastdds-visualizer-plugin/.github/actions/run-test-ubuntu | |
with: | |
package_name: fastdds_visualizer_plugin | |
if: always() | |
- name: Upload documentation | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Documentation HTML | |
path: install/fastdds_visualizer_plugin/docs/fastdds_visualizer_plugin_docs/sphinx/html/ | |
- name: Upload Logs | |
uses: actions/upload-artifact@v4 | |
with: | |
name: colcon-logs-ubuntu | |
path: log/ | |
if: always() | |
# This job tests the compilation of the project in a windows environment. | |
windows-build-test: | |
runs-on: ${{ matrix.windows-version }} | |
strategy: | |
fail-fast: false | |
matrix: | |
cmake-config: | |
- 'Release' | |
windows-version: | |
- 'windows-2019' | |
- 'windows-latest' | |
env: | |
CXXFLAGS: /MP | |
OPENSSL64_ROOT: "C:/Program Files/OpenSSL-Win64" | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
path: fastdds_visualizer_plugin | |
- name: Install OpenSSL | |
uses: ./fastdds_visualizer_plugin/.github/actions/install-openssl-windows | |
- name: Install Qt | |
uses: jurplel/[email protected] | |
with: | |
version: '5.15.2' | |
arch: 'win64_msvc2019_64' | |
dir: '${{ github.workspace }}/qt_installation/' | |
modules: 'qtcharts' | |
- name: Install foonatham memory | |
shell: pwsh | |
run: > | |
git clone --recurse-submodules --branch v0.6-2 https://github.com/foonathan/memory.git; | |
cmake -DBUILD_SHARED_LIBS=OFF -DFOONATHAN_MEMORY_BUILD_TOOLS=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON ` | |
-DFOONATHAN_MEMORY_BUILD_TESTS=OFF -Ax64 -T host=x64 -B build\memory memory; | |
cmake --build build\memory --config ${{ matrix.cmake-config }} --target install | |
- name: install Fast-CDR | |
shell: pwsh | |
run: > | |
git clone https://github.com/eProsima/Fast-CDR.git; | |
cmake -Ax64 -T host=x64 -B build\fastcdr Fast-CDR; | |
cmake --build build\fastcdr --config ${{ matrix.cmake-config }} --target install | |
- name: Install Fast-DDS | |
shell: pwsh | |
run: > | |
git clone https://github.com/eProsima/Fast-DDS.git; | |
cmake -DTHIRDPARTY=ON -DSECURITY=ON -DCOMPILE_EXAMPLES=OFF -DEPROSIMA_BUILD_TESTS=OFF ` | |
-DINTERNAL_DEBUG=ON -Ax64 -T host=x64 -B build\fastdds Fast-DDS; | |
cmake --build build\fastdds --config ${{ matrix.cmake-config }} --target install | |
- name: Install Plotjuggler | |
shell: pwsh | |
run: > | |
git clone https://github.com/facontidavide/PlotJuggler.git; | |
cmake -Ax64 -T host=x64 -B build\plotjuggler PlotJuggler; | |
cmake --build build\plotjuggler --config ${{ matrix.cmake-config }} --target install | |
# TODO remove after debug | |
- name: Check installation paths | |
shell: pwsh | |
run: > | |
Tree /f | |
- name: Install Fast DDS Visualizer Plugin | |
shell: pwsh | |
run: > | |
cmake -DCMAKE_PREFIX_PATH='C:\Program Files;${{ github.workspace }}\install' ` | |
-DCMAKE_CXX_FLAGS="/WX /EHsc" -B build\fastdds_visualizer_plugin ` | |
-A x64 -T host=x64 fastdds_visualizer_plugin; | |
cmake --build build\fastdds_visualizer_plugin --config ${{ matrix.cmake-config }} --target install | |
# This job is used to test the format and linter of the new code added to repository | |
# following the standard of eProsima | |
uncrustify: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Sync eProsima/fastdds-visualizer-plugin repository | |
uses: actions/checkout@v2 | |
with: | |
path: src/fastdds-visualizer-plugin | |
- name: Fetch all branches and tags | |
run: | | |
cd src/fastdds-visualizer-plugin | |
git fetch --prune --unshallow | |
- name: Install apt packages | |
uses: ./src/fastdds-visualizer-plugin/.github/actions/install-apt-packages | |
- name: Install Python packages | |
uses: ./src/fastdds-visualizer-plugin/.github/actions/install-python-packages | |
- name: Install uncrustify | |
run: | | |
git clone https://github.com/uncrustify/uncrustify.git \ | |
--branch uncrustify-0.71.0 \ | |
--single-branch uncrustify | |
mkdir -p uncrustify/build | |
cd uncrustify/build | |
cmake .. | |
sudo cmake --build . --target install | |
cd ../.. | |
sudo rm -rf uncrustify | |
# (TODO) Change to main branch when PR is merged | |
- name: Clone ament_lint | |
run: | | |
git clone --branch feature/fix-language-set https://github.com/jparisu/ament_lint.git src/ament_lint | |
- name: Build ament_uncrustify | |
run: colcon build --packages-up-to ament_uncrustify | |
- name: Fetch uncrustify config file | |
run: | | |
curl \ | |
-l https://raw.githubusercontent.com/eProsima/cpp-style/master/uncrustify.cfg \ | |
-o uncrustify.cfg | |
- name: Get difference | |
run: | | |
cd src/fastdds-visualizer-plugin | |
echo "MODIFIED_FILES=$(git diff --name-only origin/${GITHUB_BASE_REF} origin/${GITHUB_HEAD_REF} | grep -e '\.h' -e '\.hpp' -e '\.cpp' -e '\.ipp' | tr '\n' ' ')" >> $GITHUB_ENV | |
- name: Check difference | |
run: | | |
cd src/fastdds-visualizer-plugin | |
if [[ -z "${MODIFIED_FILES}" ]] | |
then | |
touch empty.hpp | |
echo "MODIFIED_FILES=empty.hpp" >> $GITHUB_ENV | |
fi | |
- name: Check style | |
run: | | |
source install/local_setup.bash | |
cd src/fastdds-visualizer-plugin | |
ament_uncrustify \ | |
-c ../../uncrustify.cfg \ | |
--language CPP \ | |
--xunit-file ../../uncrustify_results.xml \ | |
${MODIFIED_FILES} | |
- name: Upload uncrustify results | |
uses: actions/upload-artifact@v4 | |
with: | |
name: uncrustify_results | |
path: uncrustify_results.xml |