So, I have successfully made a .deb file of my ROS package using bloom

The question is how can I integrate it with GitHub?

So that I can update my package in one place and the user can directly update the package using sudo apt update

rather than installing the new deb file every time to update the repo or the package.

  • you can't. that's not how either github or debian packages work.
    – cas
    Apr 16, 2021 at 5:54
  • @cas Technically it can, but they'll have to create and sign an apt repository somewhere, then make the pubkey available and add additional steps to add the package build/sign step to the repo update... Which, if they're serious about doing this well, will have to include lengthy automated testing before accepting a commit as well. Apr 16, 2021 at 7:11
  • 1
    @Shadur all of which are things that github doesn't do, that have nothing to do with github. i.e. there's no "technically, it can".
    – cas
    Apr 16, 2021 at 11:43

2 Answers 2


In order to do so, you're first going to have to create and host an actual apt archive.

The instructions here should explain the steps you need to take -- most of them can be automated by the software, but you'll need to be aware of them regardless.

You'll also need to sign the deb and release files, and inform your users where they can download your public key in order to verify your Release file.

Then, when you have all of that working, you're going to have to look into adding the 'build deb, upload deb, recreate and sign Release file' into the repo update.

All of this can be done, but it's decidedly nontrivial.


I do something similar where I have a build machine which monitors my VCS for changes, then autobuilds, and uses dput *.changes or scp *.deb to an incoming/ directory on a server that I host.

That server runs reprepro and when *.deb files appear in that incoming/ directory, a script runs reprepro includedeb <suite> *.deb.

Here's an example tutorial on how to set that up.

Your users simply need to apt-key add your GPG key, and create a /etc/apt/sources.list.d/*.list pointing to your repository.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .