Run generation of types with -python in ci (#399) #1
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: 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.14.x' | ||
fastcdr-branch: | ||
description: 'Branch or tag of Fast CDR repository' | ||
required: false | ||
type: string | ||
default: '2.x' | ||
fastdds-python-branch: | ||
description: 'Branch or tag of Fast DDS Python repository' | ||
required: false | ||
type: string | ||
default: '1.4.x' | ||
discovery-server-branch: | ||
description: 'Branch or tag of Discovery Server repository' | ||
required: false | ||
type: string | ||
default: '1.2.x' | ||
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 | ||
env: | ||
cdr-test-flag: ${{ inputs.fastcdr-branch == '1.1.x' && '-Dcdr_version=v1 -Dblacklist_tests=external,optional' || (inputs.fastcdr-branch == '2.x' && '-Dcdr_version=v2' || '-Dcdr_version=both' )}} | ||
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 cdr-both | ||
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 | ||
<<<<<<< HEAD | ||
./gradlew test ${{ env.cdr-test-flag }} | ||
======= | ||
./gradlew test | ||
- name: Test fastddsgen with python arg | ||
if: ${{ inputs.run-tests == true }} | ||
run: | | ||
source ${{ github.workspace }}/install/local_setup.bash | ||
cd ${{ github.workspace }}/src/fastddsgen/thirdparty/dds-types-test/IDL | ||
find . -path "*.idl*" -exec fastddsgen -python {} + | ||
>>>>>>> e605e07 (Run generation of types with -python in ci (#399)) |