Closed gavanderhoorn closed 3 years ago
Missing lcov
tracked in https://github.com/ros-industrial/ros_industrial_cmake_boilerplate/issues/41.
Should initialize_code_coverage() only be called within if (OPW_ENABLE_TESTING)?
I believe so. Do you think that should solve the build issue?
Only partially I believe.
I can't find it right now, but I'm not sure when the buildfarm will consider test_depend
dependencies for installation.
Who would have to set OPW_ENABLE_TESTING
?
Is there a reason you're not using vanilla CMake ENABLE_TESTING
?
Edit: you could run a prerelease test to see whether your package builds successfully. The site should allow you to generate a command with multiple source repositories.
Is there a reason you're not using vanilla CMake
ENABLE_TESTING
?
It was more for convenience because if I have all the repositories in one workspace and set the ENABLE_TESTING it would build everything. This allow for easily building just a given repositories without having to manually specify all of the package in the command line. Though I could add both if where if either are set it builds the tests if that is preferred.
Could be related: https://github.com/ros-infrastructure/ros_buildfarm/issues/870 (but I remember other discussions about this).
@gavanderhoorn I have a question related to to the build farm. I submitted a new version of ros_industrial_cmake_boilerplate and opw_kinematics with the changes to only enable code coverage when the compiler flag is set. Since both are submitted when they build on the buildfarm will opw_kinematics use the new version submitted or will it use the previously released version?
The buildfarm starts builds for various reasons, one being new releases, but also new releases of dependencies.
So even if opw_kinematics
gets build before ros_industrial_cmake_boilerplate
and fails (because it's trying to use the old version), the next successful build of ros_industrial_cmake_boilerplate
should trigger a build of all its dependents, at which point opw_kinematics
should get built again.
@gavanderhoorn I just ran the pretest with the latest opw_kinematics and ros_industrial_cmake_boilerplate without any errors. Though it did not run any tests because you have to set OPW_ENABLE_TESTS. Should I update the enable test to be:
if (OPW_ENABLE_TESTING OR ENABLE_TESTING)
?
Also it is still failing on the build farm but the pretest is passing. I believe it may be related to the build farm issue you provided, though I would have expected the pretest to also fail. Should I switch these depends to build_depend
for now? Unfortunately it will require the install of these depend even if they are not intended to be used.
The buildfarm starts builds for various reasons, one being new releases, but also new releases of dependencies.
So even if
opw_kinematics
gets build beforeros_industrial_cmake_boilerplate
and fails (because it's trying to use the old version), the next successful build ofros_industrial_cmake_boilerplate
should trigger a build of all its dependents, at which pointopw_kinematics
should get built again.
Thank you for the clarification.
@gavanderhoorn Everything is now building when going through the pretest process. The ros_industrial_cmake_boilerplate has successfully build on Jenkins but it appears that opw_kinematics is still leveraging the old version of ros_industrial_cmake_poilerplate. I assume at some point it will get triggered to build with the new version.
It looks like now it is failing due to compiler option -mno-avx on arm. I have a PR to disable this option.
@gavanderhoorn I believe the issue may be resolved now but it is unclear how to best check this. Is there any documentation on how to track your packages progress when releasing on the buildfarm? One on the status page is still marked missing so I assume that is not a failure just that it has not been synced yet; is that correct?
For Noetic the table basically states that there were successful source builds for the current version and the previous one, but the binary build only succeeded for the latest release.
The last square is red because a sync is indeed needed to get the build artefacts from the last successful build into the main repositories.
Edit: I don't know whether you'd call it documentation, but the ROSCon 2016 Seoul Day 2: The ROS build farm - what it can do for me (slides) presentation goes into some detail on how it all works.
Slide 21 goes over the status page and the columsn there.
@gavanderhoorn It looks like everything is green now. Should this be closed?
Yes, seems like it's all resolved.
thanks @Levi-Armstrong :+1:
Looks like none of the binary builds have succeeded since this packages was released: Nbin_uF64__opw_kinematicsubuntu_focal_amd64binary. See also status_page/ros_noetic_default.html?q=opw.
Source build only succeeded since the
0.4.0
release: Nsrc_uFopw_kinematics__ubuntu_focalsource. Not sure what changed there.Example log from the failed binary build:
From the trace, it seems
ros_industrial_cmake_boilerplate
is not findinglcov
and then bailing (which is probably because it's only listed as atest_depend
).Should
initialize_code_coverage()
only be called withinif (OPW_ENABLE_TESTING)
?