A simple artifact repository using nginx and ephemeral tokens.
Go to file
Peter Šurda 7f30266c8a
Some checks failed
buildbot/travis_bionic Build done.
Add Buildbot usage into design
2021-12-14 04:53:36 +01:00
LICENSE Initial commit 2021-12-14 04:42:24 +01:00
README.md Add Buildbot usage into design 2021-12-14 04:53:36 +01:00

artifact-repository

A simple artifact repository using nginx, WebDAV and ephemeral tokens, for use in buildbot.

design

The repository would have multiple levels of subdirectories, such as:

  • different artifact types, such as dpkg, appimage, exe, ...
  • for different projects and / or builders
  • for build numbers

The files would be publicly downloadable, but uploading or creating new directories would be restricted. The restrictions would use an ephemeral token generated at build start. This will allow write access to specific directories corresponding to that build. Once the build is done, the files can be uploaded using WebDAV, and then the build will make another call for the token to be deleted.

The token could also use username (e.g. concatenate builder name + build number) and a random password, this way a traditional basic web authentication can be used.

Such a system can be easily dockerized and mount a replicated volume, with a little bit of preparation the authenticaiton tokens could also be replicated.

buildbot jobs

A buildbot job would then look like this:

  1. get token (maybe the server side would auto-create directories)
  2. run a task, pass the token as an environment variable or something so that it can upload when necessary
  3. revoke token