You're right...
As I see it, you are forced to have a different version number for
different branches. As such, the build cache may not be effective at all
because I imagine the version number is one of the first input considered
to determine if the cache can be reused or not.

Disclaimer: I've never used the build-cache plugin (yet, but I plan to) so
I may be wrong. Please keep us updated on your plan (I'm interested in the
result)

Le dim. 24 sept. 2023, 15:14, Ben Tatham <bentat...@nanometrics.ca.invalid>
a écrit :

> Thanks, Francois.  That would have been great for our original problem, but
> how I can I leverage that for build cache issues?
>
> On Sun, Sept 24, 2023, 5:14 a.m. Francois Marot <francois.ma...@gmail.com>
> wrote:
>
> > Just a suggestion: you could use ci-friendly Maven to pass in a version
> > depending on the commit Id/sha1 on the command line. Like mvn
> > -Drevision=<current git sha1>
> > More info:
> > https://maven.apache.org/maven-ci-friendly.html
> >
> > Regards
> >
> > Le jeu. 21 sept. 2023, 15:49, Ben Tatham <bentat...@nanometrics.ca
> > .invalid>
> > a écrit :
> >
> > > Hi,
> > > I'm loving the ideas in the maven-build-cache, but I'm running into
> some
> > > circular build issues that are blocking us from using it at the moment.
> > >
> > > In many of our projects, we deploy docker images. Ideally, we would
> like
> > to
> > > keep our docker images immutable. To achieve that, we have extra maven
> > > plugins that create unique SNAPSHOT version numbers (based on jira
> issue
> > > ids, git commit hashes, and/our CI build numbers).  We do this for
> docker
> > > image immutability, but also to avoid SNAPSHOT collisions when multiple
> > > developers are working at the same time in the same project, but still
> be
> > > able to deploy the snapshot artifacts for other reasons (temporary test
> > > deployments, sharing libraries as snapshots while still in development
> > > across projects, etc).
> > >
> > > But that solution creates unique maven versions in CI for every build,
> > > which of course then contradicts using maven-build-cache, since the
> > version
> > > is always different in CI.
> > >
> > > To use maven-build-cache, we would just go back to using standard
> > -SNAPSHOT
> > > builds, but then we have to solve our original issues a different way.
> > >
> > > (Sadly, AWS ECR only allows setting immutability at the registry
> level. I
> > > looked at nexus as a docker registry, and it seems to be even higher at
> > the
> > > whole docker repo level. (We wish we could set immutability of images
> > based
> > > on the tag - ie allow -SNAPSHOT tags to mutable, but nothing else))
> > >
> > > One idea we have is to use a different docker registry for snapshot vs
> > > release builds, but since maven properties are evaluated at the
> beginning
> > > of the maven lifecycle, we cannot change the parameters sent to maven
> > > plugins that due to the docker builds once the build starts. Thus, we
> > would
> > > have to do something outside of maven to detect, eg, if the build is a
> > > snapshot and choose a different docker registry there and pass it on
> the
> > > command line. We would love this to be an all-maven solution.
> > >
> > > Does anyone else run into similar issues with maven-build-cache?  Is
> > there
> > > some weird way we can ignore the project.version altogether on the
> > > maven-build-cache (that seems very odd, for sure though)?  Other ideas?
> > >
> > > Thanks,
> > >
> > > Ben
> > >
> > > [image: -] <http://www.nanometrics.ca>
> > > [image: -] <https://twitter.com/nanometricsinc> [image: -]
> > > <
> https://www.linkedin.com/company/nanometrics-seismological-instruments/
> > >
> > > [image:
> > > -] <https://www.youtube.com/channel/UCwao286g87g7Mqj6qvnLIZw>
> > >
> > > Ben Tatham
> > > Principal Software Developer
> > > Nanometrics
> > > bentat...@nanometrics.ca
> > >
> > > --
> > > This message is intended exclusively for the individual or entity to
> > which
> > > it is addressed. This communication may contain information that is
> > > proprietary, privileged, confidential or otherwise legally exempt from
> > > disclosure. If you are not the named addressee, or have been
> > inadvertently
> > > and erroneously referenced in the address line, you are not authorized
> to
> > > read, print, retain, copy or disseminate this message or any part of
> it.
> > > If
> > > you have received this message in error, please notify the sender
> > > immediately by e-mail and delete all copies of the message.
> > >
> >
>
> --
> This message is intended exclusively for the individual or entity to which
> it is addressed. This communication may contain information that is
> proprietary, privileged, confidential or otherwise legally exempt from
> disclosure. If you are not the named addressee, or have been inadvertently
> and erroneously referenced in the address line, you are not authorized to
> read, print, retain, copy or disseminate this message or any part of it.
> If
> you have received this message in error, please notify the sender
> immediately by e-mail and delete all copies of the message.
>

Reply via email to