-
Notifications
You must be signed in to change notification settings - Fork 60
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Improve CI workflows in master, and branching model refactor (#365)
* 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)
- Loading branch information
1 parent
d62abee
commit 8961ebd
Showing
8 changed files
with
312 additions
and
201 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: | ||
fastrtps: | ||
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 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,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: 'master' | ||
fastcdr-branch: | ||
description: 'Branch or tag of Fast CDR repository' | ||
required: false | ||
type: string | ||
default: 'master' | ||
fastdds-python-branch: | ||
description: 'Branch or tag of Fast DDS Python repository' | ||
required: false | ||
type: string | ||
default: 'main' | ||
discovery-server-branch: | ||
description: 'Branch or tag of Discovery Server repository' | ||
required: false | ||
type: string | ||
default: 'master' | ||
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: main | ||
|
||
- 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: master | ||
|
||
- 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 |
Oops, something went wrong.