Skip to content

Nightly tests of the published packages against the newest dependencies - #138

Merged
Tobias-Fischer merged 1 commit into
mainfrom
nightly-package-tests
Oct 23, 2026
Merged

Tobias-Fischer merged 1 commit into
mainfrom
nightly-package-tests

Conversation

@Tobias-Fischer

@Tobias-Fischer Tobias-Fischer commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #137.

Every night, .github/workflows/package-tests.yaml re-runs the tests bundled in the published packages (tools/package_tests.py). It does this against the newest dependencies, which catches breakages that come from conda-forge rather than from RoboStack, such as ABI changes like RoboStack/ros-humble#274.

What's tested:

  • every package with a test file (shared/tests/<package>.yaml, distros/<distro>/tests/<package>.yaml); vinca adds no tests of its own;
  • in its newest build on the distribution's channel, including every variant of that build (e.g. each Python);
  • on all five platforms, for every distribution.

How: rattler-build test --package-file installs each package with the newest matching dependencies from the distribution's channel and conda-forge, the same channels the builds use, with no lock file. It then runs the tests bundled in the package.

Report: one issue per distribution, <distro>: package tests (label package-tests). It's opened or updated with the failed tests (package, build, platform, output tail), and closed when every test passes. This reuses the dependency report's issue handling, now maintenance.publish_issue. A distribution whose jobs failed before testing is reported too.

  • A failed test is tried once more, because launch tests can time out on DDS discovery. A pass on the second try is listed as flaky.
  • Builds made before their test file was added carry no tests, and rattler-build test reports them as passed. Here they are listed separately and don't count as passed.

Tested locally: jazzy osx-arm64, all 26 packages, in about 9 minutes:

  • 23 passed;
  • rosx_introspection and steering_controllers_library had no bundled tests (build 25, older than their test files);
  • robot_state_publisher's launch smoke test timed out once and passed on the next two runs, which is why failed tests are now retried.

Unit tests cover selecting the newest builds, counting the tests that ran, the issue text and the report. All 50 tool tests pass, rs check passes, and actionlint is clean.

Manual runs (Actions › package-tests › Run workflow) take a distros input. The workflow only needs issues: write for the report job.

Labelled build:none: no packages change, so only the checks run.

🤖 Claude (AI assistant), on behalf of @Tobias-Fischer

🤖 Generated with Claude Code

tools/package_tests.py + .github/workflows/package-tests.yaml (#137): every
night, the tests bundled in each published package with a test file
(shared/tests/, distros/<d>/tests/) run again with `rattler-build test`, in
the package's newest build (every variant) on each distribution's channel and
all five platforms, against the newest conda-forge dependencies. That catches
breakages coming from conda-forge, e.g. ABI changes (ros-humble#274).

- One issue per distribution, "<distro>: package tests" (label
  package-tests), with the failures and their output; closed when every test
  passes. The issue helper of the dependency report is generalised for it
  (maintenance.publish_issue).
- A failed test is tried once more (launch tests can time out on DDS
  discovery); a pass then is listed as flaky.
- Builds from before their test file was added carry no tests: listed as
  such instead of counting as passed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Tobias-Fischer Tobias-Fischer added the build:none PR build: build no packages, only run the checks (tooling, CI or docs changes) label Oct 23, 2026
@Tobias-Fischer
Tobias-Fischer merged commit d0d3862 into main Oct 23, 2026
8 checks passed
@Tobias-Fischer
Tobias-Fischer deleted the nightly-package-tests branch October 23, 2026 05:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build:none PR build: build no packages, only run the checks (tooling, CI or docs changes)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add nightly CI for running existing rattler-build tests on build packages

2 participants