From ca4011a2ac3ec8fced8989ed2fda5ee2fc42710f Mon Sep 17 00:00:00 2001 From: Steve Peters Date: Tue, 2 Sep 2025 10:40:42 -0700 Subject: [PATCH 1/2] validate_package_xml: check with xmllint Signed-off-by: Steve Peters --- validate_package_xml/action.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/validate_package_xml/action.yml b/validate_package_xml/action.yml index 23da5f2..bbaacfa 100644 --- a/validate_package_xml/action.yml +++ b/validate_package_xml/action.yml @@ -6,13 +6,16 @@ runs: - name: Checkout uses: actions/checkout@v4 + - name: package.xml syntax validation + shell: bash + run: | + echo "Install xmllint" + sudo apt-get install -y libxml2-utils + xmllint --noout package.xml # TODO(azeey) Uncomment once https://github.com/ros-infrastructure/rep/pull/400 # is merged and the .xsd changes have propagated to ament_xmllint. - # - name: package.xml syntax validation - # shell: bash - # run: | # echo "Install ament-xmllint" - # sudo apt-get install -y python3-venv libxml2-utils + # sudo apt-get install -y python3-venv # python3 -m venv .venv # source .venv/bin/activate # pip install ament-xmllint From 41a3184e6bf7ffc4d069beb4b3e8a4fd1647e800 Mon Sep 17 00:00:00 2001 From: Steve Peters Date: Tue, 2 Sep 2025 10:47:07 -0700 Subject: [PATCH 2/2] fast check first: versions before syntax --- validate_package_xml/action.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/validate_package_xml/action.yml b/validate_package_xml/action.yml index bbaacfa..295adc4 100644 --- a/validate_package_xml/action.yml +++ b/validate_package_xml/action.yml @@ -6,6 +6,17 @@ runs: - name: Checkout uses: actions/checkout@v4 + - name: package.xml and CMake versions match + shell: bash + run: | + echo "Extract version numbers and compare" + echo '## CMake and Package.xml Versions' >> $GITHUB_STEP_SUMMARY + package_xml_version=$(sed -nE 's/\s*([0-9.]*)<\/version>\s*/\1/p' package.xml) + echo "Version in package.xml: ${package_xml_version}" | tee -a $GITHUB_STEP_SUMMARY + cmake_version=$(sed -nE 's/^project.*VERSION\s*([0-9.]*).*/\1/p' CMakeLists.txt) + echo "Version in CMake: ${cmake_version}" | tee -a $GITHUB_STEP_SUMMARY + [ $package_xml_version = $cmake_version ] + - name: package.xml syntax validation shell: bash run: | @@ -20,14 +31,3 @@ runs: # source .venv/bin/activate # pip install ament-xmllint # ament_xmllint package.xml 2>&1 | tee $GITHUB_STEP_SUMMARY - - - name: package.xml and CMake versions match - shell: bash - run: | - echo "Extract version numbers and compare" - echo '## CMake and Package.xml Versions' >> $GITHUB_STEP_SUMMARY - package_xml_version=$(sed -nE 's/\s*([0-9.]*)<\/version>\s*/\1/p' package.xml) - echo "Version in package.xml: ${package_xml_version}" | tee -a $GITHUB_STEP_SUMMARY - cmake_version=$(sed -nE 's/^project.*VERSION\s*([0-9.]*).*/\1/p' CMakeLists.txt) - echo "Version in CMake: ${cmake_version}" | tee -a $GITHUB_STEP_SUMMARY - [ $package_xml_version = $cmake_version ]