jspricke / ros-deb-builder-action

Github Action to convert ROS packages to Debian packages
BSD 3-Clause "New" or "Revised" License
65 stars 24 forks source link

suggestion: import multiple "repos" files #41

Open christian-rauch opened 8 months ago

christian-rauch commented 8 months ago

The input REPOS_FILE currently only accepts a single "repos" file. It would be convenient if this could be a list of files that would be merged before importing the packages.

An application for this is merging different package sets (A and B) where one (A) is fixed and another one (B) has to be built with different branches (B.1, B.2). Currently, this can only be done by creating two separate "repos" files ({A+B}.1, {A+B}.2) with duplicated entries from A.

jspricke commented 8 months ago

You could build A in one Action and B in an other with the apt repo of A added.

christian-rauch commented 8 months ago

Due to GitHub size restrictions for individual files, we are not using the repo. Is there a way to cache already built Debian packages? I.e. as you suggest, first run the build on a repos file for A, cache the resulting packages (without pushing them to a repo) and then run on repos files B.1 and B.2 by reusing the packages from A without building them again.

jspricke commented 8 months ago

you can use any http://, file:// or other apt source see: https://manpages.debian.org/bookworm/apt/sources.list.5.en.html#URI_SPECIFICATION

v4hn commented 1 month ago

Adding to this (as I just found the issue), maybe have a look at what I set up in ros-o-builder, where all debs are cached between jobs.

Recently I also looked at splitting required and output debs (in ros-o-builder-experimental and my action fork) for proper dependencies, ~but that's not in use yet~.

For me the main challenge becomes that github allows "only" for 10GB of caches in total and intermediate caches will add up quickly. Eventually, caches are deleted by order of last access time, so ccache caches and deb caches can push each other out unexpectedly.