Skip to content

CI artifacts missing in some jobs #1438

@marco66colombo

Description

@marco66colombo

Prerequisites

Please make sure to check off these prerequisites before submitting a bug report.

  • Test that the bug appears on the current version of the master branch. Make sure to include the commit hash of the commit you checked out.
  • Check that the issue hasn't already been reported, by checking the currently open issues.
  • If there are steps to reproduce the problem, make sure to write them down below.
  • If relevant, please include the hls4ml project files, which were created directly before and/or after the bug.

Quick summary

Some CI jobs upload no artifacts even though the CI template expects tarballs and/or synthesis reports, which results in artifact upload warnings. The jobs do not fail, but this is noisy.

Details

Steps to Reproduce

  1. Look at a CI job that only executes tests without synthesis and without explicit tarball generation, e.g.
  2. Observe the artifact upload step.

Expected behavior

Artifacts should be produced.

Actual behavior

Artifacts are produced only for certain backends/tests (e.g., Catapult where tarballs are always generated). Other jobs produce none and the upload step logs:

Uploading artifacts...
WARNING: test/pytest/*.tar.gz: no matching files...
WARNING: test/pytest/synthesis_report_*.json: no matching files...
ERROR: No files to upload

Optional

Possible fix

  • Add a WriteTar configuration to CatapultWriter for consistency with other backends.
  • If artifacts are desired, update tests to set write_tar=True.

Additional context

The root cause is inconsistent artifact production: Catapult always generates .tar.gz archives (unconditional write_tar in CatapultWriter.write_hls()), while other backends only generate tarballs when WriterConfig.WriteTar is enabled (default False).

Evidence

  • hls4ml/writer/catapult_writer.py: write_hls() always calls self.write_tar(model) (no config gate).
  • hls4ml/writer/vivado_writer.py, oneapi_writer.py, quartus_writer.py: tarball creation is gated by WriteTar.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions