-
Notifications
You must be signed in to change notification settings - Fork 62
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
) * Refs #21226: Improve CI workflows in master and apply Fast DDS branching model Signed-off-by: JesusPoderoso <[email protected]> * Refs #21226: Add RELEASE_SUPPORT.md file Signed-off-by: JesusPoderoso <[email protected]> * Refs #21226: Add suggested changes from previous / similar PRs Signed-off-by: JesusPoderoso <[email protected]> * Refs #21226: Apply rev suggestion Signed-off-by: JesusPoderoso <[email protected]> --------- Signed-off-by: JesusPoderoso <[email protected]> (cherry picked from commit d912d11) Co-authored-by: Jesús Poderoso <[email protected]>
- Loading branch information
1 parent
c619563
commit 2f781a0
Showing
6 changed files
with
302 additions
and
55 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
names: | ||
fastdds: | ||
cmake-args: | ||
- "-DEPROSIMA_BUILD_TESTS=ON" | ||
fastdds_python: | ||
cmake-args: | ||
- "-DBUILD_TESTING=ON" |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
repositories: | ||
googletest-distribution: | ||
type: git | ||
url: https://github.com/google/googletest.git | ||
version: release-1.11.0 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,214 @@ | ||
name: Fast DDS Gen Ubuntu CI reusable workflow | ||
|
||
on: | ||
workflow_call: | ||
inputs: | ||
os-version: | ||
description: 'The OS image for the workflow' | ||
required: true | ||
type: string | ||
java-version: | ||
description: 'The Java version to be used' | ||
required: true | ||
type: string | ||
label: | ||
description: 'ID associated to the workflow' | ||
required: true | ||
type: string | ||
fastddsgen-branch: | ||
description: 'Fast DDS Gen branch to be used' | ||
required: true | ||
type: string | ||
fastdds-branch: | ||
description: 'Branch or tag of Fast DDS repository' | ||
required: false | ||
type: string | ||
default: '2.10.x' | ||
fastcdr-branch: | ||
description: 'Branch or tag of Fast CDR repository' | ||
required: false | ||
type: string | ||
default: '1.0.x' | ||
fastdds-python-branch: | ||
description: 'Branch or tag of Fast DDS Python repository' | ||
required: false | ||
type: string | ||
default: '1.2.x' | ||
discovery-server-branch: | ||
description: 'Branch or tag of Discovery Server repository' | ||
required: false | ||
type: string | ||
default: 'v1.2.1' | ||
run-build: | ||
description: 'Build Fast DDS Gen' | ||
required: false | ||
type: boolean | ||
default: true | ||
run-tests: | ||
description: 'Run test suite of Fast DDS Gen' | ||
required: false | ||
type: boolean | ||
default: true | ||
use-ccache: | ||
description: 'Use CCache to speed up the build' | ||
required: false | ||
type: boolean | ||
default: false | ||
defaults: | ||
run: | ||
shell: bash | ||
|
||
jobs: | ||
ubuntu-build-test: | ||
runs-on: ${{ inputs.os-version }} | ||
if: ${{ inputs.run-build == true }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
cmake-build-type: | ||
- 'RelWithDebInfo' | ||
steps: | ||
- name: Add ci-pending label if PR | ||
if: ${{ github.event_name == 'pull_request' }} | ||
uses: eProsima/eProsima-CI/external/add_labels@v0 | ||
with: | ||
labels: ci-pending | ||
number: ${{ github.event.number }} | ||
repo: eProsima/Fast-DDS-Gen | ||
|
||
- name: Sync eProsima/Fast-DDS-Gen repository | ||
uses: eProsima/eProsima-CI/external/checkout@v0 | ||
with: | ||
path: ${{ github.workspace }}/src/fastddsgen | ||
ref: ${{ inputs.fastddsgen-branch }} | ||
|
||
- name: Install Fix Python version | ||
uses: eProsima/eProsima-CI/external/setup-python@v0 | ||
with: | ||
python-version: '3.11' | ||
|
||
- name: Get minimum supported version of CMake | ||
uses: eProsima/eProsima-CI/external/get-cmake@v0 | ||
with: | ||
cmakeVersion: 3.22.6 | ||
|
||
- name: Install apt packages | ||
uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0 | ||
with: | ||
packages: libasio-dev libtinyxml2-dev libssl-dev swig ${{ inputs.java-version }} | ||
|
||
- name: Configure Java to ${{ inputs.java-version }} | ||
shell: bash | ||
run: | | ||
jv=$(echo ${{ inputs.java-version }} | sed -r 's/.*-([0-9]*)-.*/\1/g'); jvs=$(update-alternatives --list java | grep "$jv" | head -1); sudo update-alternatives --set java "$jvs" | ||
jv=$(echo ${{ inputs.java-version }} | sed -r 's/.*-([0-9]*)-.*/\1/g'); jvs=$(update-alternatives --list javac | grep "$jv" | head -1); sudo update-alternatives --set javac "$jvs" | ||
- name: Install colcon | ||
uses: eProsima/eProsima-CI/multiplatform/install_colcon@v0 | ||
|
||
- name: Install Python dependencies | ||
uses: eProsima/eProsima-CI/multiplatform/install_python_packages@v0 | ||
with: | ||
packages: vcstool xmlschema xmltodict==0.13.0 jsondiff==2.0.0 pandas==1.5.2 | ||
upgrade: false | ||
|
||
- name: Setup CCache | ||
uses: eProsima/eProsima-CI/external/setup-ccache-action@v0 | ||
if: ${{ inputs.use-ccache == true }} | ||
with: | ||
api_token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Get Fast DDS branch | ||
id: get_fastdds_branch | ||
uses: eProsima/eProsima-CI/ubuntu/get_related_branch_from_repo@v0 | ||
with: | ||
remote_repository: eProsima/Fast-DDS | ||
fallback_branch: ${{ inputs.fastdds-branch }} | ||
|
||
- name: Get Fast CDR branch | ||
id: get_fastcdr_branch | ||
uses: eProsima/eProsima-CI/ubuntu/get_related_branch_from_repo@v0 | ||
with: | ||
remote_repository: eProsima/Fast-CDR | ||
fallback_branch: ${{ inputs.fastcdr-branch }} | ||
|
||
- name: Get Fast DDS Python branch | ||
id: get_fastdds_python_branch | ||
uses: eProsima/eProsima-CI/ubuntu/get_related_branch_from_repo@v0 | ||
with: | ||
remote_repository: eProsima/Fast-DDS-python | ||
fallback_branch: ${{ inputs.fastdds-python-branch }} | ||
|
||
- name: Get Discovery Server branch | ||
id: get_discovery_server_branch | ||
uses: eProsima/eProsima-CI/ubuntu/get_related_branch_from_repo@v0 | ||
with: | ||
remote_repository: eProsima/Discovery-Server | ||
fallback_branch: ${{ inputs.discovery-server-branch }} | ||
|
||
- name: Download Fast CDR, Fast DDS Python, and Discovery Server | ||
run: | | ||
cd src | ||
git clone -b ${{ steps.get_fastcdr_branch.outputs.deduced_branch }} https://github.com/eProsima/Fast-CDR.git fastcdr | ||
git clone -b ${{ steps.get_fastdds_python_branch.outputs.deduced_branch }} https://github.com/eProsima/Fast-DDS-python.git fastdds_python | ||
git clone -b ${{ steps.get_discovery_server_branch.outputs.deduced_branch }} https://github.com/eProsima/Discovery-Server.git discovery_server | ||
cd .. | ||
shell: bash | ||
|
||
- name: Download Fast DDS repo | ||
uses: eProsima/eProsima-CI/external/checkout@v0 | ||
with: | ||
repository: eProsima/Fast-DDS | ||
path: ${{ github.workspace }}/src/fastrtps | ||
ref: ${{ steps.get_fastdds_branch.outputs.deduced_branch }} | ||
|
||
- name: Fetch Fast DDS dependencies | ||
uses: eProsima/eProsima-CI/multiplatform/vcs_import@v0 | ||
with: | ||
vcs_repos_file: ${{ github.workspace }}/src/fastrtps/fastrtps.repos | ||
destination_workspace: src | ||
skip_existing: 'true' | ||
|
||
- name: Build fastddsgen | ||
run: | | ||
cd ${{ github.workspace }}/src/fastddsgen | ||
./gradlew assemble | ||
echo "$(pwd)/scripts" >> ${{ github.path }} | ||
- name: Regenerate IDL files for Fast DDS, Fast DDS Python, and Discovery Server | ||
run: | | ||
cd ${{ github.workspace }}/src/fastrtps | ||
./utils/scripts/update_generated_code_from_idl.sh | ||
cd - | ||
cd ${{ github.workspace }}/src/fastdds_python | ||
./utils/scripts/update_generated_code_from_idl.sh | ||
cd - | ||
cd ${{ github.workspace }}/src/discovery_server | ||
./utils/scripts/update_generated_code_from_idl.sh | ||
cd - | ||
- name: Fetch Fast DDS Gen CI dependencies | ||
uses: eProsima/eProsima-CI/multiplatform/vcs_import@v0 | ||
if: ${{ inputs.run-tests == true }} | ||
with: | ||
vcs_repos_file: ${{ github.workspace }}/src/fastddsgen/.github/workflows/config/test.repos | ||
destination_workspace: src | ||
skip_existing: 'true' | ||
|
||
- name: Colcon build | ||
continue-on-error: false | ||
uses: eProsima/eProsima-CI/multiplatform/colcon_build@v0 | ||
with: | ||
colcon_meta_file: ${{ github.workspace }}/src/fastddsgen/.github/workflows/config/build.meta | ||
colcon_build_args_default: '--event-handlers=console_direct+' | ||
cmake_build_type: ${{ matrix.cmake-build-type }} | ||
workspace: ${{ github.workspace }} | ||
|
||
- name: Test fastddsgen | ||
if: ${{ inputs.run-tests == true }} | ||
run: | | ||
source ${{ github.workspace }}/install/local_setup.bash | ||
cd ${{ github.workspace }}/src/fastddsgen | ||
./gradlew test |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
name: Fast DDS Gen Ubuntu CI | ||
|
||
on: | ||
workflow_dispatch: | ||
inputs: | ||
fastddsgen-branch: | ||
description: 'Fast DDS Gen branch to be used' | ||
required: true | ||
type: string | ||
fastdds-branch: | ||
description: 'Branch or tag of Fast DDS repository' | ||
required: false | ||
type: string | ||
default: '2.10.x' | ||
fastcdr-branch: | ||
description: 'Branch or tag of Fast CDR repository' | ||
required: false | ||
type: string | ||
default: '1.0.x' | ||
fastdds-python-branch: | ||
description: 'Branch or tag of Fast DDS Python repository' | ||
required: false | ||
type: string | ||
default: '1.2.x' | ||
discovery-server-branch: | ||
description: 'Branch or tag of Discovery Server repository' | ||
required: false | ||
type: string | ||
default: 'v1.2.1' | ||
run-tests: | ||
description: 'Run test suite of Fast DDS Gen' | ||
required: false | ||
type: boolean | ||
default: true | ||
use-ccache: | ||
description: 'Use CCache to speed up the build' | ||
required: false | ||
type: boolean | ||
default: false | ||
|
||
pull_request: | ||
types: | ||
- review_requested | ||
paths-ignore: | ||
- '**.md' | ||
- '**.txt' | ||
- '!**/CMakeLists.txt' | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
ubuntu-ci: | ||
if: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'conflicts') }} | ||
uses: ./.github/workflows/reusable-ubuntu-ci.yml | ||
with: | ||
# It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: | ||
# https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. | ||
os-version: 'ubuntu-22.04' | ||
java-version: 'openjdk-11-jdk' | ||
label: 'ubuntu-ci-openjdk-11-jdk' | ||
fastddsgen-branch: ${{ inputs.fastddsgen-branch || github.ref }} | ||
fastdds-branch: ${{ inputs.fastdds-branch || '2.10.x' }} | ||
fastcdr-branch: ${{ inputs.fastcdr-branch || '1.0.x' }} | ||
fastdds-python-branch: ${{ inputs.fastdds-python-branch || '1.2.x' }} | ||
discovery-server-branch: ${{ inputs.discovery-server-branch || 'v1.2.1' }} | ||
run-build: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'skip-ci') }} | ||
run-tests: ${{ (inputs.run-tests == true) || ((github.event_name == 'pull_request') && (!contains(github.event.pull_request.labels.*.name, 'no-test'))) }} | ||
use-ccache: ${{ (inputs.use-ccache == true) || false }} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# Release support | ||
|
||
|
||
Please, refer to the [master branch](https://github.com/eProsima/Fast-DDS-Gen/blob/master/RELEASE_SUPPORT.md) for the latest version of this document. | ||
|
||
For detailed information about the lifecycle of the different *Fast DDS* versions (and their corresponding counterpart in this repository), please refer to the [release support section of the Fast DDS repository](https://github.com/eProsima/Fast-DDS/blob/master/RELEASE_SUPPORT.md). |