Understanding .ci/* files #12738
Replies: 1 comment 6 replies
-
All these shell scripts are to do some type of verification of Checkstyle. They can be internal, checking CS against another project, or running an external tool against CS. We have found it is better to not have a single massive file, but split it apart into groupings. So
I am not aware of any scripts communicating with others, except for some rare occurrences. Most scripts are self-contained as that makes them easier to manage and debug. Most are a few simple commands executed to produce a good/bad result.
I am not familar with all these scripts individually, and things are always changing.
In a way. It is a more important script but it was named such as a "miscellanous" file. We have too many scripts to give them all unique names like pitest and no-exception. It was not named such to be the boss to all the other scripts. There is no boss script, just ranges of usefulness in the issues they look for. The YML files are more the bosses for their specific CI.
While you can trigger the scripts locally for your own reasons, our CI triggers the scripts and this is why the folder is named "CI". You should be able to look at our YML related CI files and see calls to the different scripts in them.
Your basically asking us to remove something important to validate the changes PRs are making to the code. Obviously, we would find whatever way we could to do this without shell scripts. We have been using groovy as an alternative to be more OS friendly, but we have really only been using it for complex scripts. I personally am not a fan of script languages because of the lack of IDE support as can be obtained with languages like Java. Majority of administrators are on Linux, hence why majority of our scripts are shell scripts. As a Windows user, I am forced to set up a VM to run shells for this project.
They fail to replace a human reviewer.... Any issues we have with the scripts are logged in an issue somewhere. Obviously the biggest failure would just being OS friendly, but I don't see it as that big an issue. |
Beta Was this translation helpful? Give feedback.
-
The
.ci/
folder is an interesting one to me.I have some questions related to this directory
.ci/
.Question 1
What's the purpose of writing all these shell files. (Is it for automation?! For the CICD on github?!)
Question 2
2.1
How are these shell files communicating with each other. I want to draw out (in the sense diagramatically visualize) as to which file is communicating with what file.
2.2
Is
validation.sh
the main file here. In the sense only untilvalidation.sh
is triggered that the rest of the files will be triggered.2.3
What triggers
validation.sh
and why?Question 3
If I were to ask you to remove all these shell files completely, that is totally remove
.ci/*
files then what is the next best possible way to achieve the same thing that these shell files are meant to achieve.Question 4
Is there any job that these files fail to achieve as of now? What are they? What are potential fixes for them?
(Please share documentation link if possible for anything that seems viable to share for this)
Beta Was this translation helpful? Give feedback.
All reactions