Resolving installation incompatibilities #1330
This file contains hidden or 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: | ||
| inputs: | ||
| dependencies_artifact_postfix: | ||
| description: 'Postfix name to add to artifact name to download dependencies. This is use to download a specific artifact version from eProsima-CI.' | ||
| required: true | ||
| default: '_nightly' | ||
| pull_request: | ||
| push: | ||
| branches: | ||
| - main | ||
| schedule: | ||
| - cron: '0 0 * * *' | ||
| env: | ||
| code_packages_names: 'sustainml_cpp sustainml_py sustainml_docs sustainml_modules' | ||
| default_dependencies_artifact_postfix: '_nightly' | ||
| jobs: | ||
| ##################################################################### | ||
| # TEST | ||
| multiplatform-build: | ||
| runs-on: ${{ matrix.os }} | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| cmake_build_type: | ||
| - Release | ||
| - Debug | ||
| os: | ||
| - ubuntu-22.04 | ||
| steps: | ||
| - name: Free Disk Space | ||
| run: | | ||
| echo "Disk space before cleanup:" | ||
| df -h | ||
| sudo rm -rf /usr/local/.ghcup | ||
| sudo rm -rf /opt/hostedtoolcache/CodeQL | ||
| sudo rm -rf /usr/local/lib/android/sdk/ndk | ||
| sudo rm -rf /usr/share/dotnet | ||
| sudo rm -rf /opt/ghc | ||
| sudo rm -rf /usr/local/share/boost | ||
| sudo apt-get clean | ||
| echo "Disk space after cleanup:" | ||
| df -h | ||
| - name: Sync repository | ||
| uses: eProsima/eProsima-CI/external/checkout@v0 | ||
| with: | ||
| path: ${{ github.workspace }}/src/sustainml_lib | ||
| ref: ${{ github.head_ref || github.ref_name }} | ||
| - name: Install Fast DDS dependencies | ||
| uses: eProsima/eProsima-CI/multiplatform/install_fastdds_dependencies@v0 | ||
| with: | ||
| cmake_build_type: ${{ matrix.cmake_build_type }} | ||
| - name: Install apt dependencies | ||
| uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0 | ||
| with: | ||
| packages: doxygen graphviz imagemagick python3 python3-pip python3-sphinxcontrib.spelling python3-venv software-properties-common wget clang-tidy curl grep | ||
| update: false | ||
| upgrade: false | ||
| - name: Pin setuptools for brevitas (pre) | ||
| run: | | ||
| python3 -m pip install --upgrade pip | ||
| python3 -m pip install --force-reinstall "setuptools<70" wheel | ||
| python3 -m pip show setuptools | ||
| - name: Install Python dependencies | ||
| uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0 | ||
| with: | ||
| packages: colcon-common-extensions colcon-mixin vcstool gcovr==5 | ||
| upgrade: false | ||
| - name: Pin setuptools for brevitas (post) | ||
| run: | | ||
| python3 -m pip install --force-reinstall "setuptools<70" | ||
| python3 -m pip check || true | ||
| python3 -m pip show setuptools | ||
| - name: Install Python submodules dependencies | ||
| uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0 | ||
| with: | ||
| requirements_file_name: ${{ github.workspace }}/src/sustainml_lib/sustainml_modules/requirements.txt | ||
| upgrade: false | ||
| - name: Install ollama | ||
| run: curl -fsSL https://ollama.com/install.sh | sh | ||
| - name: Fetch SustainML repositories | ||
| uses: eProsima/eProsima-CI/multiplatform/vcs_import@v0 | ||
| with: | ||
| vcs_repos_file: ${{ github.workspace }}/src/sustainml_lib/sustainml.repos | ||
| destination_workspace: ${{ github.workspace }}/src | ||
| skip_existing: true | ||
| - name: Run ollama | ||
| run: | | ||
| ollama pull llama3 | ||
| - name: Init submodules manually | ||
| run: | | ||
| cd ${{ github.workspace }}/src/sustainml_lib | ||
| git submodule update --init --recursive | ||
| - name: Install Java 21 | ||
| run: | | ||
| sudo apt-get update | ||
| sudo apt-get install -y openjdk-21-jdk | ||
| echo "JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64" >> $GITHUB_ENV | ||
| echo "/usr/lib/jvm/java-21-openjdk-amd64/bin" >> $GITHUB_PATH | ||
| - name: Install Neo4j | ||
| run: | | ||
| sudo apt update && sudo apt install -y gnupg ca-certificates wget | ||
| wget -O - https://debian.neo4j.com/neotechnology.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/neo4j.gpg > /dev/null | ||
| echo "deb [signed-by=/usr/share/keyrings/neo4j.gpg] https://debian.neo4j.com stable latest" | sudo tee /etc/apt/sources.list.d/neo4j.list | ||
| sudo apt update | ||
| sudo apt install -y neo4j | ||
| neo4j --version | ||
| - name: Load Neo4j backup | ||
| run: | | ||
| BACKUP_PATH=${{ github.workspace }}/src/sustainml_lib/sustainml_modules/sustainml_modules/sustainml-wp1/rag/neo4j_backup | ||
| sudo -E neo4j-admin database load system \ | ||
| --from-path=$BACKUP_PATH \ | ||
| --overwrite-destination=true | ||
| sudo -E neo4j-admin database load neo4j \ | ||
| --from-path=$BACKUP_PATH \ | ||
| --overwrite-destination=true | ||
| sudo chown -R neo4j:neo4j /var/lib/neo4j/data | ||
| - name: Start Neo4j service | ||
| run: | | ||
| sudo -E neo4j start | ||
| - name: Download Annoy Index file from Google Drive | ||
| run: | | ||
| pip install gdown | ||
| gdown --id 1TQvt1bSXares-I9l7Wki0Jge3oubRkOJ -O ${{ github.workspace }}/src/sustainml_lib/sustainml_modules/sustainml_modules/sustainml-wp1/rag/models_index.ann | ||
| - name: Compile and run tests | ||
| uses: eProsima/eProsima-CI/multiplatform/colcon_build_test@v0 | ||
| with: | ||
| ctest_args: '--timeout 300' | ||
| packages_names: sustainml_cpp sustainml_py sustainml_modules | ||
| cmake_args: -DCMAKE_BUILD_TYPE=${{ matrix.cmake_build_type }} | ||
| colcon_meta_file: ${{ github.workspace }}/src/sustainml_lib/.github/workflows/configurations/${{ runner.os }}/colcon.meta | ||
| colcon_args_default: "--merge-install" | ||
| ##################################################################### | ||
| # CLANG | ||
| clang: | ||
| runs-on: ubuntu-24.04 | ||
| steps: | ||
| - name: Free Disk Space | ||
| run: | | ||
| echo "Disk space before cleanup:" | ||
| df -h | ||
| sudo rm -rf /usr/local/.ghcup | ||
| sudo rm -rf /opt/hostedtoolcache/CodeQL | ||
| sudo rm -rf /usr/local/lib/android/sdk/ndk | ||
| sudo rm -rf /usr/share/dotnet | ||
| sudo rm -rf /opt/ghc | ||
| sudo rm -rf /usr/local/share/boost | ||
| sudo apt-get clean | ||
| echo "Disk space after cleanup:" | ||
| df -h | ||
| - name: Sync repository | ||
| uses: eProsima/eProsima-CI/external/checkout@v0 | ||
| with: | ||
| path: ${{ github.workspace }}/src/sustainml_lib | ||
| ref: ${{ github.head_ref || github.ref_name }} | ||
| - name: Install Fast DDS dependencies | ||
| uses: eProsima/eProsima-CI/multiplatform/install_fastdds_dependencies@v0 | ||
| with: | ||
| cmake_build_type: ${{ matrix.cmake_build_type }} | ||
| - name: Install apt dependencies | ||
| uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0 | ||
| with: | ||
| packages: doxygen graphviz imagemagick python3 python3-pip python3-sphinxcontrib.spelling python3-venv software-properties-common wget clang-tidy curl grep libfreetype6-dev libjpeg-dev libpng-dev zlib1g-dev | ||
| update: false | ||
| upgrade: false | ||
| - name: Pin setuptools for brevitas (pre) | ||
| run: | | ||
| python3 -m pip install --upgrade pip | ||
| python3 -m pip install --force-reinstall "setuptools<70" wheel | ||
| python3 -m pip show setuptools | ||
| - name: Install Python dependencies | ||
| uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0 | ||
| with: | ||
| packages: colcon-common-extensions colcon-mixin vcstool gcovr==5 | ||
| upgrade: false | ||
| - name: Pin setuptools for brevitas (post) | ||
| run: | | ||
| python3 -m pip install --force-reinstall "setuptools<70" | ||
| python3 -m pip check || true | ||
| python3 -m pip show setuptools | ||
| - name: Install Python documentation dependencies | ||
| uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0 | ||
| with: | ||
| requirements_file_name: ${{ github.workspace }}/src/sustainml_lib/sustainml_docs/requirements.txt | ||
| upgrade: false | ||
| - name: Install Python submodules dependencies | ||
| uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0 | ||
| with: | ||
| requirements_file_name: ${{ github.workspace }}/src/sustainml_lib/sustainml_modules/requirements.txt | ||
| upgrade: false | ||
| - name: Install ollama | ||
| run: curl -fsSL https://ollama.com/install.sh | sh | ||
| - name: Fetch SustainML repositories | ||
| uses: eProsima/eProsima-CI/multiplatform/vcs_import@v0 | ||
| with: | ||
| vcs_repos_file: ${{ github.workspace }}/src/sustainml_lib/sustainml.repos | ||
| destination_workspace: ${{ github.workspace }}/src | ||
| skip_existing: true | ||
| - name: Run ollama | ||
| run: | | ||
| ollama pull llama3 | ||
| - name: Init submodules manually | ||
| run: | | ||
| cd ${{ github.workspace }}/src/sustainml_lib | ||
| git submodule update --init --recursive | ||
| - name: Download file from Google Drive | ||
| run: | | ||
| pip install gdown | ||
| gdown --id 1TQvt1bSXares-I9l7Wki0Jge3oubRkOJ -O ${{ github.workspace }}/src/sustainml_lib/sustainml_modules/sustainml_modules/sustainml-wp1/rag/models_index.ann | ||
| - name: Debug: locate fastcdr config | ||
| run: | | ||
| find ${{ github.workspace }}/install -name "fastcdr-config.cmake" -o -name "fastcdrConfig.cmake" || true | ||
| echo "CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH" | ||
| - name: Compile and run tests | ||
| uses: eProsima/eProsima-CI/multiplatform/clang_build_test@v0 | ||
| with: | ||
| packages_names: ${{ env.code_packages_names }} | ||
| colcon_meta_file: ${{ github.workspace }}/src/sustainml_lib/.github/workflows/configurations/Linux/colcon.meta | ||
| colcon_args_default: "--merge-install" | ||
| ##################################################################### | ||
| # UNCRUSTIFY | ||
| uncrustify: | ||
| runs-on: ubuntu-24.04 | ||
| steps: | ||
| - name: Uncrustify | ||
| uses: eProsima/eProsima-CI/ubuntu/uncrustify@v0 | ||