It's a lego based concept.
Means you can add or exchange parts of it (bricks).
This project comes with 2 parts:
- Build-Service → OBI
https://github.com/andreas-prouza/obi - IDE integration → IBM i build with OBI
https://github.com/andreas-prouza/ibm-i-build-obi
📝 Notice:
Here I'm using git.
Since it's a lego based concept, git is recommended but not necessary to use.
This is a backend processing tool.
It can be used to execute several tasks:
- generates the compile list
- runs the build
- creates a summary report
This tool needs to be installed on you IBM i to run the build commands. (2nd part in the picture above.)
For the first part (get compile list) OBI can also be located on your PC.
In my first project I used OBI ony on IBM i.
Unfortunately IBM i is not optimized for many IFS processing. So it can slow down this task if the machine weak.
Fortunately it doesn't matter on which system OBI is running for the first part.
This results in great performance. Specially if your IBM i is not that fast.
OBI is supposed to be independed by any project.
Means you can reuse the single OBI setup for different projects.
All configurations are located directly in each project like etc/app-config.toml which is located in your project directory.
This is the "cockpit".
It manages the communication between OBI and your IDE
Every task will be done by a bash script (located in scripts/
).
If you choose an IDE you need to find a way to easily execute them.
- In RDi
You can define the scripts inExternal Tools
- In VSCode
You can use plugins to get them executed (e.g.Action Buttons
)
Your sources are located here in src/
.
It also provides necessary configurations to OBI for building process.
(etc/app-config.toml
, etc/dependency.toml
, ...)
- OBI is looking for changed sources
The source hash value will be compared with the value stored (from last build) inetc/object-builds.toml
- OBI generates a compile list (
build-output/compile-list.json
) - IBM i Build with OBI synchronise all sources to IBM i
Every developer should have his own build directory (usually somewhere in/home/$USER
) - OBI runs the generated build from
build-output/compile-list.json
- At the end IBM i Build with OBI gets all logs and the report summary
Compile settings (etc/app-config.toml)
You can define settings and compile command ...
- Global
- For each source type
- Individual
- For each source