Connect step artifact collecting with corresponding steps
k-dovgan opened this issue · comments
Related issues: #295, #168, #66
Current artifact processing process goes like this:
- In config preprocessing (before build steps execution) all artifacts, mentioned in all steps, are collected into one big list
1a. All 'report_artifacts' are also collected to a separate list - All artifacts are checked to be absent before build
- After build steps execution all artifacts from list are collected and reported. This process is completely detached from configuration steps, that initially contained references to artifacts.
How can the situation be improved:
- Collect and report each artifact in the end of corresponding step, only if step was executed?
- Check artifact presence right before step execution?
- Provide mechanism to add more than one artifact (or artifact glob) per step, while maintaining backward compatibility?
What difficulties are expected while implementing following improvements:
- Universum built-in artifacts are not attached to any step, but should be processed anyway
- Some artifacts may be created by previous steps while edited by a step they are announced in
- Trying to report artifacts while executing configuration steps might significantly affect project architecture and exception handling mechanisms
Check artifact presence right before step execution?
In my opinion, we should not do it as the only option. Possible implementations:
- leave as is - check all artifacts before all steps
- new behavior - check artifacts of the step before this particular step
- allow user to select the checking method, by default work as it is now
The issues with always checking artifacts before each step are the following:
- The build failure due to artifacts presence is postponed to the step execution. Checking artifacts beforehand can save some time.
- There are cases when artifacts are created by one step and then changed by another. Regardless of what step will be configured with these artifacts, the result would that either the check for presence will lead to failure or that artifacts would be collected prematurely.