RoboStack / RoboStack/vinca

Proposal: defer GitHub Actions publish until a platform build completes

Open
#117 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
20
Forks
24
Avg merge
1d 16h
Merged PRs (30d)
17

Description

Hi, while looking into partial-update dependency conflicts in downstream RoboStack channels, I wondered whether generated GitHub Actions workflows may be publishing a platform too early.

From what I can tell, packages can currently be uploaded while only part of a platform's dependency graph has finished building. For large ROS distributions, that seems likely to expose a partially updated platform state for some period of time.

Would you be open to an optional generator-level mode that defers upload until the full platform build has completed successfully?

A possible approach would be:

  • keep the current behavior as the default
  • add an opt-in mode such as platform-finalize
  • in that mode, batch jobs only build and upload workflow artifacts
  • add a final per-platform publish job that downloads those artifacts and uploads them only after the required build jobs succeed

I have a local prototype in progress that follows this pattern, and it seems compatible with GitHub Actions' documented needs and artifact flow. If this is the wrong layer or there is already a preferred mechanism, I would appreciate the correction.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the generator's GitHub Actions workflow output and the local prototype mentioned in the issue. Trace how batch jobs build and upload artifacts, then determine how an opt-in platform-finalize mode could add a per-platform publish job using needs and artifacts. Done means the default behavior is unchanged and the optional mode publishes only after the full platform build succeeds.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, python
Domain
build-system, ci-cd
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.