Patrik Dudits opened MBUILDCACHE-73 and commented
Certain plugins or goals might require to run when project version changes regardless of other inputs. A typical example would be deploy:deploy or in my specific case docker:build - It is OK to reuse the build artifact, but if version changed, I do want to upload it.
Currently only way to achieve that is to put the goal into runAlways section. But that results in needles snapshots to be deployed or docker images being built even if there's no relevant change.
The reconcile section allows to specify properties for futher fine tuning the input. These are limited to goal parameters, and neither of my examples contain project version as a parameter, both use project model to fetch it.
Proposal would be to extend tag reconcile either with:
- special magic name
project.version to include version tracking, so this could be achieved by <reconcile propertyName="project.version"/>
- attribute
{}expression{}, to achieve the result with <reconcile propertyName="version" expression="${project.version}"/>
- interpolating
defaultValue attribute
The second form would be preferrable as it has much larger scale of application, I can imagine putting base docker image digests in environment variable to invalidate builds when base tag gets updated. It is also more discoverable than third option.
Affects: 1.0.1
Issue Links:
- MBUILDCACHE-81 Add an option to include project version as part of the cache hash key
("duplicates")
- MBUILDCACHE-76 pom project version change not detected
("is duplicated by")
1 votes, 4 watchers
Patrik Dudits opened MBUILDCACHE-73 and commented
Certain plugins or goals might require to run when project version changes regardless of other inputs. A typical example would be
deploy:deployor in my specific casedocker:build- It is OK to reuse the build artifact, but if version changed, I do want to upload it.Currently only way to achieve that is to put the goal into
runAlwayssection. But that results in needles snapshots to be deployed or docker images being built even if there's no relevant change.The reconcile section allows to specify properties for futher fine tuning the input. These are limited to goal parameters, and neither of my examples contain project version as a parameter, both use project model to fetch it.
Proposal would be to extend tag
reconcileeither with:project.versionto include version tracking, so this could be achieved by<reconcile propertyName="project.version"/>{}expression{}, to achieve the result with<reconcile propertyName="version" expression="${project.version}"/>defaultValueattributeThe second form would be preferrable as it has much larger scale of application, I can imagine putting base docker image digests in environment variable to invalidate builds when base tag gets updated. It is also more discoverable than third option.
Affects: 1.0.1
Issue Links:
("duplicates")
("is duplicated by")
1 votes, 4 watchers