Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Linux CI workflow #2

Open
wants to merge 12 commits into
base: master
Choose a base branch
from
99 changes: 99 additions & 0 deletions .github/workflows/linux-ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: Linux CI

on:
workflow_dispatch:
inputs:
cmake-args:
description: 'Optional arguments to pass to CMake'
required: false
ctest-args:
description: 'Optional arguments to pass to CTest'
required: false
pull_request:
push:
branches:
- master
- 2.10.x
- 2.1.x
- 2.9.x
- 2.8.x
schedule:
- cron: '0 1 * * *'

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:

linux-ci:
strategy:
fail-fast: false
matrix:
runner-os:
- 'ubuntu-22.04'
- 'ubuntu-20.04'

runs-on: ${{ matrix.runner-os }}

steps:
- name: Sync eProsima/Fast-DDS repository
uses: actions/checkout@v3
with:
path: src/Fast-DDS

- name: Install apt packages
uses: eProsima/eProsima-CI/ubuntu/install_fast_dependencies@feature/build_dependencies

- name: Fetch Fast DDS dependencies
uses: ./src/Fast-DDS/.github/actions/fetch-fastdds-repos
with:
target_directory: src
googletest: true

- name: Set up hosts file for DNS testing
run: |
sudo echo "" | sudo tee -a /etc/hosts
sudo echo "localhost.test 127.0.0.1 ::1" | sudo tee -a /etc/hosts
sudo echo "www.eprosima.com.test 154.56.134.194" | sudo tee -a /etc/hosts
sudo echo "www.acme.com.test 216.58.215.164 2a00:1450:400e:803::2004" | sudo tee -a /etc/hosts
sudo echo "www.foo.com.test 140.82.121.4 140.82.121.3" | sudo tee -a /etc/hosts
sudo echo "acme.org.test ff1e::ffff:efff:1" | sudo tee -a /etc/hosts

- name: Build workspace
run: |
colcon build \
--event-handlers=console_direct+ \
--metas src/Fast-DDS/.github/workflows/linux-ci/linux-ci.meta \
--cmake-args ${{ github.event.inputs.cmake-args }}

- name: Run tests Fast DDS
id: testing
run: |
source install/setup.bash && \
colcon test \
--packages-select fastrtps \
--event-handlers=console_direct+ \
--return-code-on-test-failure \
--retest-until-pass 3 \
--metas src/Fast-DDS/.github/workflows/linux-ci/linux-ci.meta \
--ctest-args ${{ github.event.inputs.ctest-args }}

continue-on-error: true

- name: Upload Logs
uses: actions/upload-artifact@v1

with:
name: test-results-${{ matrix.runner-os }}
path: log/latest_test/fastrtps
if: always()

- name: Check for failure
if: steps.testing.outcome != 'success'
run: |
echo '## ${{ matrix.runner-os }}' >> $GITHUB_STEP_SUMMARY
echo '| Test | Reason |' >> $GITHUB_STEP_SUMMARY
echo '|---|---|' >> $GITHUB_STEP_SUMMARY'
grep -rin "(Failed\|(Child\|(Timeout" log/latest_test/fastrtps/stdout_stderr.log | awk -F "[-|(|)]+" '//{print "|" $2 "| " $3 " |"}' >> $GITHUB_STEP_SUMMARY
exit 1
30 changes: 30 additions & 0 deletions .github/workflows/linux-ci/linux-ci.meta
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"names":
{
"fastrtps":
{
"cmake-args":
[
"-DCMAKE_BUILD_TYPE=RelWithDebInfo",
"-DTHIRDPARTY=OFF",
"-DEPROSIMA_BUILD_TESTS=ON",
"-DGTEST_INDIVIDUAL=ON",
"-DTHIRDPARTY_UPDATE=OFF",
"-DINTERNAL_DEBUG=OFF",
"-DFASTRTPS_API_TESTS=ON",
"-DFASTDDS_PIM_API_TESTS=ON",
"-DPERFORMANCE_TESTS=ON",
"-DNO_TLS=OFF",
"-DSHM_TRANSPORT_DEFAULT=ON",
"-DSYSTEM_TESTS=ON",
"-DSECURITY=ON",
"-DFASTDDS_STATISTICS=ON"
],
"ctest-args":
[
"--label-exclude xfail",
"--timeout 300"
]
},
}
}