Storing ABAP build artifacts in OCI registry
Huh? Are there actual build artifacts in ABAP?
Well, inside the traditional SAP ABAP systems, everything is stored in the database, and everything is compiled automatically.
However, outside the system, eg. storing files with abapGit fit is possible to transmogrify artifacts, examples:
This gives new files, which can also be stored in git. But, sometimes on GitHub, it is difficult to reuse files across multiple private repositories. Sharing in other ecosystems is typically done via a central registry/artifact store like npm or Maven.
ORAS can be used to store any files in a OCI registry. It is a sandbox project under Cloud Native Computing Foundation, creating open specifications and tools. Much like the docker cli, it can push and pull files to a registry.
Many git/hosting providers offer OCI registries, so you most likely have a registry part of your infrastructure already.
For testing, I created a GitHub action,
That automatically stores a hello world text file to
If there are no comments under an article of Lars Hvam it usually does not mean that it's bad content but rather no one understands the technique... 😂
That means, ORAS acts like another file storage container? Could you give me an example why and how this technique could be useful?
Yes, ORAS can be seen as just a file container, which can be stored in a OCI registry.
A use-case: https://github.com/SAP/abap-file-formats-tools is written in v754 syntax, to run this standalone with open-abap, it first needs to be downported to 702, which(currently, because I'm lazy) takes several minutes. The idea is to publish the downport to GitHub OCI after each merge, so the downported code can be used in https://github.com/SAP/abap-file-formats
Kind of like NPM works, compile the code, publish to a registry. But this can be decentralized, and its ABAP code.
Plus pushing and pulling OCI does not require special access tokens, its a typical workflow(outside the ABAP world)
Thanks for the explanation, Lars Hvam !
Still I do not get why the files need to be transferred to another "container". Why shouldn't the downported files be read from github (separate folder for each version)?
I guess most would choose to only maintain the latest version in high syntax, the downported code becomes derived from the latest, and you want to only store one latest version of the truth in git.
abapGit does store the build in https://github.com/abapGit/build, however, writing to this repository requires a setup with private keys. Writing to, and reading from (including private repositories) works out of the box, without any key setup.
if i understand it right, you can so also build software for different ABAP Versions. What is interessting as supplier of an add on.