Running abaplint from SCI / ATC / ADT
abaplint is an open-source static analysis tool for ABAP, it runs well with continuous integration tools like GitHub Apps, GitHub Actions, GitLab Pipelines, Bitbucket Pipelines, Azure Pipelines, Travis, and more. But the developer had to create a pull/merge request before the logic was triggered, now it is possible to run the checks earlier in the development process.
The setup consists of 2 components,
https://github.com/abaplint/abaplint-abap-backend to be installed on the ABAP backend using abapGit, it implements a custom code inspector check that can be added in the default variant.
https://github.com/abaplint/abaplint-cloud-foundry is a component that can be installed on your private cloud foundry environment, SAP offers a free CF trial.
The configuration is done via the normal code inspector UI, but the configuration is global and not per variant. If the package is also configured in abapGit, it is easy to pull the abaplint.json configuration from the remote git repository.
For testing purposes, endpoint http://sci.abaplint.org can be used instead of a private CF environment, use at own risk, unencrypted code will leave your infrastructure, plus the server is slow.
The vscode extension can be used to edit the configuration locally and offers checking of the config file via the latest json schema.
When the configuration is done, it’s possible to run the code inspector checks using your favorite editor/environment. Note that the code inspector check will hook automagically into ADT or ATC.
As with all IT, this is work in progress, multithreading is not implemented on the server-side, in a CF set just add more instances.
There is lots of bugs, ABAP is a crazy language, but so far 300+ versions of abaplint have been released, and it will continue to evolve.
Wow Lars Hvam,
really cool stuff!
This is good.
Can I use ABAPLint on Azure DevOps by including it into my azure-pipelines.yml, I think this is a kind of naive question, because I new to this. But your posts really enthralled me to try stuffs.
yes, see https://github.com/abaplint/abaplint/blob/master/docs/using-abaplint-in-ci.md (we are reorganizing the documentation, so not sure how long this link will work, if not see https://github.com/abaplint/abaplint)
see https://github.com/abaplint/azure-devops-example for an example
plus https://github.com/microsoft/ABAP-SDK-for-Azure also runs abaplint on azure devops
Thanks, for your reply Lars, I am trying these examples, they are really helpful.
Hi Lars Hvam,
Is there a way to run abaplint while typing in Eclipse? The same way the plugin for VS Code works (or any linting tool in other languages). Having to run it via an ATC Check makes it much less useful.
I see there is an abaplint plugin for Eclipse but it’s marked as deprecated.
well, no, Eclipse calls the backend at demand, not continuously
Yes, I’m aware, but I meant to run abaplint on top of ADT but totally independent from the backend, without using the SCI client. I guess it requires a new Eclipse Client Plug-in… something too look into it if I have time
Hi Lars, thank you for helpful posts.
I've deployed abaplint sci server in my CF, but struggling with API requests.
Do you have any guide or examples how to properly make requests?
this is my current request:
Hi, please open an issue on github