3

I'm looking for a binary-artifact repository, but everything I see is super complicated, to set up, use, and manage. All I'm looking for is:

  • upload repos as tgz/zip with metadata (name, date, tag)
  • query and download by SHA and/or name
  • a local tool (python-based?) to help create repos from a subdir with the proper metadata and signature

Even a web-based portal is almost more than what I need (sure, it would be nice.) Doesn't seem like it should require all the infrastructure and complexity of archiva, artifactory, etc. Or maybe some of these tools have a simple mode and I just can't find it?

  • Hi Gary, it seems like you might have a slightly non-standard process around what you do. It might help if you go into a bit more detail on how you do things in your question. Also ... in the end an NFS mounted directory with few (shell) scripts is probably the simplest artifact repository out there when it comes down to it. (Substitute rsync, aws s3 or really any en.wikipedia.org/wiki/Clustered_file_system) – Jiri Klouda Sep 24 '18 at 23:28
  • As an example: let's say I require a particular version of libfoo to build my product, and libfoo is really complicated and time-consuming to build. I'd like to build it once, say make-archive to create libfoo-win64-dbg-2018-09-24-a1eef00d. Then in my build script I can say get-archive <that name> and it would unpack it if not present and proceed with the build. Then if I want to use a newer libfoo I build it and archive it, and update my build script to use the new name (and check that in). Now the build is reproducible. Sure, it's just some scripts. Surprised that doesn't exist. – GaryO Sep 25 '18 at 0:47
  • Or of course the artifact could be a compiler, a data set, or who knows what. And it would be nice if the artifact itself were self-describing with a manifest, content signature, all that good stuff. – GaryO Sep 25 '18 at 0:49
  • 1
    It exists, the scripts are called dpkg. You package the library and upload .deb to a repository. Then install the specific build. Any other example? – Jiri Klouda Sep 25 '18 at 7:23
  • 1
    Interesting! I see there is a wpkg so this could work cross-OS, which I would want. The creation process looks simple (much simpler than RPM!) The systemwide requirement (needs root, dpkg db is global, installs into /) is a small hitch but I'm sure it can be dealt with. @JiriKlouda can you turn your comment into an answer so I can select it as correct? – GaryO Sep 25 '18 at 12:43
0

I generaly work with a CDN, you can upload files and compressed files, and many CDNs has api , like it, but exist many other not conventional solutions, by example insert code or script in a fake image using base 64 and upload it to server public , or use facebook pixel to add script or file. Hope this help you.

0

You can always fall back to scp, sftp or the like, i.e. command-line based upload/download. Tags can be done with symlinks, and you don't get advanced metadata, but still.

0

I didn't find anything that was exactly what I was looking for; simple zip/tar and even dpkg didn't have the traceability I was hoping for in a binary-artifact system, so I wrote my own: see https://github.com/garyo/binary-artifact (MIT licensed).

It's basically a glorified tar/zip creator that creates a manifest with a content signature and a well-defined file name that includes the content sig, so the artifact can be specified in a build file (e.g. Ansible/Puppet/Chef/SCons) in a repeatable, traceable way.

This way the artifacts can live anywhere the build system can find them (Google drive, Dropbox, local NAS, whatever), download them knowing exactly which version is being downloaded (thanks to the specific name), and unpack and use them as usual. This tool makes no assumptions about where the artifacts get stored.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.